home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / file / magic next >
Text File  |  2009-05-13  |  545KB  |  15,284 lines

  1. # Magic data for file(1) command.
  2. # Format is described in magic(5).
  3. # Don't edit this file, edit /etc/magic or send your suggested inclusions to
  4. # this file as a wishlist bug against file (using the reportbug utility).
  5.  
  6.  
  7. #------------------------------------------------------------------------------
  8. # Localstuff:  file(1) magic for locally observed files
  9. #
  10. # $File: Localstuff,v 1.4 2003/03/23 04:17:27 christos Exp $
  11. # Add any locally observed files here.  Remember:
  12. # text if readable, executable if runnable binary, data if unreadable.
  13. #------------------------------------------------------------------------------
  14. # acorn:  file(1) magic for files found on Acorn systems
  15. #
  16.  
  17. # RISC OS Chunk File Format
  18. # From RISC OS Programmer's Reference Manual, Appendix D
  19. # We guess the file type from the type of the first chunk.
  20. 0    lelong        0xc3cbc6c5    RISC OS Chunk data
  21. >12    string        OBJ_        \b, AOF object
  22. >12    string        LIB_        \b, ALF library
  23.  
  24. # RISC OS AIF, contains "SWI OS_Exit" at offset 16.
  25. 16    lelong        0xef000011    RISC OS AIF executable
  26.  
  27. # RISC OS Draw files
  28. # From RISC OS Programmer's Reference Manual, Appendix E
  29. 0    string         Draw        RISC OS Draw file data
  30.  
  31. # RISC OS new format font files
  32. # From RISC OS Programmer's Reference Manual, Appendix E
  33. 0    string        FONT\0        RISC OS outline font data,
  34. >5    byte        x        version %d
  35. 0    string        FONT\1        RISC OS 1bpp font data,
  36. >5    byte        x        version %d
  37. 0    string        FONT\4        RISC OS 4bpp font data
  38. >5    byte        x        version %d
  39.  
  40. # RISC OS Music files
  41. # From RISC OS Programmer's Reference Manual, Appendix E
  42. 0    string        Maestro\r    RISC OS music file
  43. >8    byte        x        version %d
  44.  
  45. >8    byte        x        type %d
  46.  
  47. # Digital Symphony data files
  48. # From: Bernard Jungen (bern8817@euphonynet.be)
  49. 0        string    \x02\x01\x13\x13\x13\x01\x0d\x10    Digital Symphony sound sample (RISC OS),
  50. >8        byte    x    version %d,
  51. >9        pstring    x    named "%s",
  52. >(9.b+19)    byte    =0    8-bit logarithmic
  53. >(9.b+19)    byte    =1    LZW-compressed linear
  54. >(9.b+19)    byte    =2    8-bit linear signed
  55. >(9.b+19)    byte    =3    16-bit linear signed
  56. >(9.b+19)    byte    =4    SigmaDelta-compressed linear
  57. >(9.b+19)    byte    =5    SigmaDelta-compressed logarithmic
  58. >(9.b+19)    byte    >5    unknown format
  59.  
  60. 0    string    \x02\x01\x13\x13\x14\x12\x01\x0b    Digital Symphony song (RISC OS),
  61. >8    byte    x    version %d,
  62. >9    byte    =1    1 voice,
  63. >9    byte    !1    %d voices,
  64. >10    leshort    =1    1 track,
  65. >10    leshort    !1    %d tracks,
  66. >12    leshort    =1    1 pattern
  67. >12    leshort    !1    %d patterns
  68.  
  69. 0    string    \x02\x01\x13\x13\x10\x14\x12\x0e
  70. >9    byte    =0    Digital Symphony sequence (RISC OS),
  71. >>8    byte    x    version %d,
  72. >>10    byte    =1    1 line,
  73. >>10    byte    !1    %d lines,
  74. >>11    leshort    =1    1 position
  75. >>11    leshort    !1    %d positions
  76. >9    byte    =1    Digital Symphony pattern data (RISC OS),
  77. >>8    byte    x    version %d,
  78. >>10    leshort    =1    1 pattern
  79. >>10    leshort    !1    %d patterns
  80.  
  81. #------------------------------------------------------------------------------
  82. # adi: file(1) magic for ADi's objects
  83. # From Gregory McGarry <g.mcgarry@ieee.org>
  84. #
  85. 0    leshort        0x521c        COFF DSP21k
  86. >18    lelong        &02        executable,
  87. >18    lelong        ^02
  88. >>18    lelong        &01        static object,
  89. >>18    lelong        ^01        relocatable object,
  90. >18    lelong        &010        stripped
  91. >18    lelong        ^010        not stripped
  92.  
  93. #------------------------------------------------------------------------------
  94. # adventure: file(1) magic for Adventure game files
  95. #
  96. # from Allen Garvin <earendil@faeryland.tamu-commerce.edu>
  97. # Edited by Dave Chapeskie <dchapes@ddm.on.ca> Jun 28, 1998
  98. # Edited by Chris Chittleborough <cchittleborough@yahoo.com.au>, March 2002
  99. #
  100. # ALAN
  101. # I assume there are other, lower versions, but these are the only ones I
  102. # saw in the archive.
  103. 0    beshort    0x0206    ALAN game data
  104. >2    byte    <10    version 2.6%d
  105.  
  106.  
  107. # Infocom (see z-machine)
  108. #------------------------------------------------------------------------------
  109. # Z-machine:  file(1) magic for Z-machine binaries.
  110. #
  111. # Updated by Adam Buchbinder <adam.buchbinder@gmail.com>
  112. #
  113. # The first byte is the Z-machine revision; it is always between 1 and 8. We
  114. # had false matches (for instance, inbig5.ocp from the Omega TeX extension as
  115. # well as an occasional MP3 file), so we sanity-check the version number.
  116. #
  117. # It might be possible to sanity-check the release number as well, as it seems
  118. # (at least in classic Infocom games) to always be a relatively small number,
  119. # always under 150 or so, but as this isn't rigorous, we'll wait on that until
  120. # it becomes clear that it's needed.
  121. #
  122. 0    ubyte            >0
  123. >0    ubyte            <9
  124. >>16    belong&0xfe00f0f0    0x3030    Infocom game data
  125. >>>0    ubyte            x    (Z-machine %d,
  126. >>>>2    ubeshort        x    Release %d /
  127. >>>>18    string            >\0    Serial %.6s)
  128.  
  129. #------------------------------------------------------------------------------
  130. # Glulx:  file(1) magic for Glulx binaries.
  131. #
  132. # I haven't checked for false matches yet.
  133. #
  134. 0    string            Glul    Glulx game data
  135. >4    beshort            x    (Version %d
  136. >>6    byte            x    \b.%d
  137. >>8    byte            x    \b.%d)
  138. >36    string            Info    Compiled by Inform
  139.  
  140.  
  141.  
  142. # For Quetzal and blorb magic see iff
  143.  
  144.  
  145. # TADS (Text Adventure Development System)
  146. #  All files are machine-independent (games compile to byte-code) and are tagged
  147. #  with a version string of the form "V2.<digit>.<digit>\0" (but TADS 3 is
  148. #  on the way).
  149. #  Game files start with "TADS2 bin\n\r\032\0" then the compiler version.
  150. 0    string    TADS2\ bin    TADS
  151. >9    belong  !0x0A0D1A00    game data, CORRUPTED
  152. >9    belong     0x0A0D1A00
  153. >>13    string    >\0        %s game data
  154. #  Resource files start with "TADS2 rsc\n\r\032\0" then the compiler version.
  155. 0    string    TADS2\ rsc    TADS
  156. >9    belong  !0x0A0D1A00    resource data, CORRUPTED
  157. >9    belong     0x0A0D1A00
  158. >>13    string    >\0        %s resource data
  159. #  Some saved game files start with "TADS2 save/g\n\r\032\0", a little-endian
  160. #  2-byte length N, the N-char name of the game file *without* a NUL (darn!),
  161. # "TADS2 save\n\r\032\0" and the interpreter version. 
  162. 0    string    TADS2\ save/g    TADS
  163. >12    belong    !0x0A0D1A00    saved game data, CORRUPTED
  164. >12    belong     0x0A0D1A00
  165. >>(16.s+32) string >\0        %s saved game data
  166. #  Other saved game files start with "TADS2 save\n\r\032\0" and the interpreter
  167. #  version.
  168. 0    string    TADS2\ save    TADS
  169. >10    belong    !0x0A0D1A00    saved game data, CORRUPTED
  170. >10    belong     0x0A0D1A00
  171. >>14    string    >\0        %s saved game data
  172.  
  173. # Danny Milosavljevic <danny.milo@gmx.net>
  174. # this are adrift (adventure game standard) game files, extension .taf
  175. # depending on version magic continues with 0x93453E6139FA (V 4.0)
  176. # 0x9445376139FA (V 3.90)
  177. # 0x9445366139FA (V 3.80)
  178. # this is from source (http://www.adrift.org.uk/) and I have some taf
  179. # files, and checked them.
  180. #0    belong    0x3C423FC9
  181. #>4    belong    0x6A87C2CF    Adrift game file
  182. #!:mime    application/x-adrift
  183. #------------------------------------------------------------------------------
  184. # allegro:  file(1) magic for Allegro datafiles
  185. # Toby Deshane <hac@shoelace.digivill.net>
  186. #
  187. 0 belong 0x736C6821   Allegro datafile (packed)
  188. 0 belong 0x736C682E   Allegro datafile (not packed/autodetect)
  189. 0 belong 0x736C682B   Allegro datafile (appended exe data)
  190.  
  191. #------------------------------------------------------------------------------
  192. # alliant:  file(1) magic for Alliant FX series a.out files
  193. #
  194. # If the FX series is the one that had a processor with a 68K-derived
  195. # instruction set, the "short" should probably become "beshort" and the
  196. # "long" should probably become "belong".
  197. # If it's the i860-based one, they should probably become either the
  198. # big-endian or little-endian versions, depending on the mode they ran
  199. # the 860 in....
  200. #
  201. 0    short        0420        0420 Alliant virtual executable
  202. >2    short        &0x0020        common library
  203. >16    long        >0        not stripped
  204. 0    short        0421        0421 Alliant compact executable
  205. >2    short        &0x0020        common library
  206. >16    long        >0        not stripped
  207. #------------------------------------------------------------------------------
  208. # alpha architecture description
  209. #
  210.  
  211. 0    leshort        0603        COFF format alpha
  212. >22    leshort&030000    !020000        executable
  213. >24    leshort        0410        pure
  214. >24    leshort        0413        paged
  215. >22    leshort&020000    !0        dynamically linked
  216. >16    lelong        !0        not stripped
  217. >16    lelong        0        stripped
  218. >22    leshort&030000    020000        shared library
  219. >24    leshort        0407        object
  220. >27    byte        x        - version %d
  221. >26    byte        x        .%d
  222. >28    byte        x        -%d
  223.  
  224. # Basic recognition of Digital UNIX core dumps - Mike Bremford <mike@opac.bl.uk>
  225. #
  226. # The actual magic number is just "Core", followed by a 2-byte version
  227. # number; however, treating any file that begins with "Core" as a Digital
  228. # UNIX core dump file may produce too many false hits, so we include one
  229. # byte of the version number as well; DU 5.0 appears only to be up to
  230. # version 2.
  231. #
  232. 0    string        Core\001    Alpha COFF format core dump (Digital UNIX)
  233. >24    string        >\0        \b, from '%s'
  234. 0    string        Core\002    Alpha COFF format core dump (Digital UNIX)
  235. >24    string        >\0        \b, from '%s'
  236.  
  237. #------------------------------------------------------------------------------
  238. # amanda:  file(1) magic for amanda file format
  239. #
  240. 0    string    AMANDA:\         AMANDA 
  241. >8    string    TAPESTART\ DATE        tape header file,
  242. >>23    string    X
  243. >>>25    string    >\             Unused %s
  244. >>23    string    >\             DATE %s
  245. >8    string    FILE\             dump file,
  246. >>13    string    >\             DATE %s
  247. #------------------------------------------------------------------------------
  248. # amigaos:  file(1) magic for AmigaOS binary formats:
  249.  
  250. #
  251. # From ignatios@cs.uni-bonn.de (Ignatios Souvatzis)
  252. #
  253. 0    belong        0x000003fa    AmigaOS shared library
  254. 0    belong        0x000003f3    AmigaOS loadseg()ble executable/binary
  255. 0    belong        0x000003e7    AmigaOS object/library data
  256. #
  257. 0    beshort        0xe310        Amiga Workbench
  258. >2    beshort        1        
  259. >>48    byte        1        disk icon
  260. >>48    byte        2        drawer icon
  261. >>48    byte        3        tool icon
  262. >>48    byte        4        project icon
  263. >>48    byte        5        garbage icon
  264. >>48    byte        6        device icon
  265. >>48    byte        7        kickstart icon
  266. >>48    byte        8        workbench application icon
  267. >2    beshort        >1        icon, vers. %d
  268. #
  269. # various sound formats from the Amiga
  270. # G=F6tz Waschk <waschk@informatik.uni-rostock.de>
  271. #
  272. 0    string        FC14        Future Composer 1.4 Module sound file
  273. 0    string        SMOD        Future Composer 1.3 Module sound file
  274. 0    string        AON4artofnoise    Art Of Noise Module sound file
  275. 1    string        MUGICIAN/SOFTEYES Mugician Module sound file
  276. 58    string        SIDMON\ II\ -\ THE    Sidmon 2.0 Module sound file
  277. 0    string        Synth4.0    Synthesis Module sound file
  278. 0    string        ARP.        The Holy Noise Module sound file
  279. 0    string        BeEp\0        JamCracker Module sound file
  280. 0    string        COSO\0        Hippel-COSO Module sound file
  281. # Too simple (short, pure ASCII, deep), MPi
  282. #26    string        V.3        Brian Postma's Soundmon Module sound file v3
  283. #26    string        BPSM        Brian Postma's Soundmon Module sound file v3
  284. #26    string        V.2        Brian Postma's Soundmon Module sound file v2
  285.  
  286. # The following are from: "Stefan A. Haubenthal" <polluks@web.de>
  287. 0    beshort        0x0f00        AmigaOS bitmap font
  288. 0    beshort        0x0f03        AmigaOS outline font
  289. 0    belong        0x80001001    AmigaOS outline tag
  290. 0    string        ##\ version    catalog translation
  291. 0    string        EMOD\0        Amiga E module
  292. 8    string        ECXM\0        ECX module
  293. 0    string/c    @database    AmigaGuide file
  294.  
  295. # Amiga disk types
  296. 0    string        RDSK        Rigid Disk Block
  297. >160    string        x        on %.24s
  298. 0    string        DOS\0        Amiga DOS disk
  299. 0    string        DOS\1        Amiga FFS disk
  300. 0    string        DOS\2        Amiga Inter DOS disk
  301. 0    string        DOS\3        Amiga Inter FFS disk
  302. 0    string        DOS\4        Amiga Fastdir DOS disk
  303. 0    string        DOS\5        Amiga Fastdir FFS disk
  304. 0    string        KICK        Kickstart disk
  305.  
  306. # From: Alex Beregszaszi <alex@fsn.hu>
  307. 0    string        LZX        LZX compressed archive (Amiga)
  308.  
  309.  
  310. #------------------------------------------------------------------------------
  311. # animation:  file(1) magic for animation/movie formats
  312. #
  313. # animation formats
  314. # MPEG, FLI, DL originally from vax@ccwf.cc.utexas.edu (VaX#n8)
  315. # FLC, SGI, Apple originally from Daniel Quinlan (quinlan@yggdrasil.com)
  316.  
  317. # SGI and Apple formats
  318. 0    string        MOVI        Silicon Graphics movie file
  319. !:mime    video/x-sgi-movie
  320. 4       string          moov            Apple QuickTime
  321. !:mime    video/quicktime
  322. >12     string          mvhd            \b movie (fast start)
  323. >12     string          mdra            \b URL
  324. >12     string          cmov            \b movie (fast start, compressed header)
  325. >12     string          rmra            \b multiple URLs
  326. 4       string          mdat            Apple QuickTime movie (unoptimized)
  327. !:mime    video/quicktime
  328. #4       string          wide            Apple QuickTime movie (unoptimized)
  329. #!:mime    video/quicktime
  330. #4       string          skip            Apple QuickTime movie (modified)
  331. #!:mime    video/quicktime
  332. #4       string          free            Apple QuickTime movie (modified)
  333. #!:mime    video/quicktime
  334. 4       string          idsc            Apple QuickTime image (fast start)
  335. !:mime    image/x-quicktime
  336. #4       string          idat            Apple QuickTime image (unoptimized)
  337. #!:mime    image/x-quicktime
  338. 4       string          pckg            Apple QuickTime compressed archive
  339. !:mime    application/x-quicktime-player
  340. 4    string/B    jP        JPEG 2000 image
  341. !:mime    image/jp2
  342. 4    string        ftyp        ISO Media
  343. >8    string        isom        \b, MPEG v4 system, version 1
  344. !:mime    video/mp4
  345. >8    string        iso2        \b, MPEG v4 system, part 12 revision
  346. >8    string        mp41        \b, MPEG v4 system, version 1
  347. !:mime    video/mp4
  348. >8    string        mp42        \b, MPEG v4 system, version 2
  349. !:mime    video/mp4
  350. >8    string        mp7t        \b, MPEG v4 system, MPEG v7 XML
  351. >8    string        mp7b        \b, MPEG v4 system, MPEG v7 binary XML
  352. >8    string/B    jp2        \b, JPEG 2000
  353. !:mime    image/jp2
  354. >8    string        3gp        \b, MPEG v4 system, 3GPP
  355. !:mime    video/3gpp
  356. >>11    byte        4        \b v4 (H.263/AMR GSM 6.10)
  357. >>11    byte        5        \b v5 (H.263/AMR GSM 6.10)
  358. >>11    byte        6        \b v6 (ITU H.264/AMR GSM 6.10)
  359. >8    string        mmp4        \b, MPEG v4 system, 3GPP Mobile
  360. !:mime    video/mp4
  361. >8    string        avc1        \b, MPEG v4 system, 3GPP JVT AVC
  362. !:mime    video/3gpp
  363. >8    string/B    M4A        \b, MPEG v4 system, iTunes AAC-LC
  364. !:mime    audio/mp4
  365. >8    string/B    M4V        \b, MPEG v4 system, iTunes AVC-LC
  366. !:mime    video/mp4
  367. >8    string/B    M4P        \b, MPEG v4 system, iTunes AES encrypted
  368. >8    string/B    M4B        \b, MPEG v4 system, iTunes bookmarked
  369. >8    string/B    qt        \b, Apple QuickTime movie
  370. !:mime    video/quicktime
  371.  
  372. # MPEG sequences
  373. # Scans for all common MPEG header start codes
  374. 0     belong            0x00000001     
  375. >4     byte&0x1F        0x07       JVT NAL sequence, H.264 video
  376. >>5      byte               66             \b, baseline
  377. >>5      byte               77             \b, main
  378. >>5      byte               88             \b, extended
  379. >>7      byte               x              \b @ L %u
  380. 0        belong&0xFFFFFF00  0x00000100     
  381. >3       byte               0xBA           MPEG sequence
  382. >>4      byte               &0x40          \b, v2, program multiplex
  383. >>4      byte               ^0x40          \b, v1, system multiplex
  384. >3       byte               0xBB           MPEG sequence, v1/2, multiplex (missing pack header)
  385. >3       byte&0x1F          0x07           MPEG sequence, H.264 video
  386. >>4      byte               66             \b, baseline
  387. >>4      byte               77             \b, main
  388. >>4      byte               88             \b, extended
  389. >>6      byte               x              \b @ L %u
  390. >3       byte               0xB0           MPEG sequence, v4
  391. >>5      belong             0x000001B5
  392. >>>9     byte               &0x80
  393. >>>>10   byte&0xF0          16             \b, video
  394. >>>>10   byte&0xF0          32             \b, still texture
  395. >>>>10   byte&0xF0          48             \b, mesh
  396. >>>>10   byte&0xF0          64             \b, face
  397. >>>9     byte&0xF8          8              \b, video
  398. >>>9     byte&0xF8          16             \b, still texture
  399. >>>9     byte&0xF8          24             \b, mesh
  400. >>>9     byte&0xF8          32             \b, face
  401. >>4      byte               1              \b, simple @ L1
  402. >>4      byte               2              \b, simple @ L2
  403. >>4      byte               3              \b, simple @ L3
  404. >>4      byte               4              \b, simple @ L0
  405. >>4      byte               17             \b, simple scalable @ L1
  406. >>4      byte               18             \b, simple scalable @ L2
  407. >>4      byte               33             \b, core @ L1
  408. >>4      byte               34             \b, core @ L2
  409. >>4      byte               50             \b, main @ L2
  410. >>4      byte               51             \b, main @ L3
  411. >>4      byte               53             \b, main @ L4
  412. >>4      byte               66             \b, n-bit @ L2
  413. >>4      byte               81             \b, scalable texture @ L1
  414. >>4      byte               97             \b, simple face animation @ L1
  415. >>4      byte               98             \b, simple face animation @ L2
  416. >>4      byte               99             \b, simple face basic animation @ L1
  417. >>4      byte               100            \b, simple face basic animation @ L2
  418. >>4      byte               113            \b, basic animation text @ L1
  419. >>4      byte               114            \b, basic animation text @ L2
  420. >>4      byte               129            \b, hybrid @ L1
  421. >>4      byte               130            \b, hybrid @ L2
  422. >>4      byte               145            \b, advanced RT simple @ L!
  423. >>4      byte               146            \b, advanced RT simple @ L2
  424. >>4      byte               147            \b, advanced RT simple @ L3
  425. >>4      byte               148            \b, advanced RT simple @ L4
  426. >>4      byte               161            \b, core scalable @ L1
  427. >>4      byte               162            \b, core scalable @ L2
  428. >>4      byte               163            \b, core scalable @ L3
  429. >>4      byte               177            \b, advanced coding efficiency @ L1
  430. >>4      byte               178            \b, advanced coding efficiency @ L2
  431. >>4      byte               179            \b, advanced coding efficiency @ L3
  432. >>4      byte               180            \b, advanced coding efficiency @ L4
  433. >>4      byte               193            \b, advanced core @ L1
  434. >>4      byte               194            \b, advanced core @ L2
  435. >>4      byte               209            \b, advanced scalable texture @ L1
  436. >>4      byte               210            \b, advanced scalable texture @ L2
  437. >>4      byte               211            \b, advanced scalable texture @ L3
  438. >>4      byte               225            \b, simple studio @ L1
  439. >>4      byte               226            \b, simple studio @ L2
  440. >>4      byte               227            \b, simple studio @ L3
  441. >>4      byte               228            \b, simple studio @ L4
  442. >>4      byte               229            \b, core studio @ L1
  443. >>4      byte               230            \b, core studio @ L2
  444. >>4      byte               231            \b, core studio @ L3
  445. >>4      byte               232            \b, core studio @ L4
  446. >>4      byte               240            \b, advanced simple @ L0
  447. >>4      byte               241            \b, advanced simple @ L1
  448. >>4      byte               242            \b, advanced simple @ L2
  449. >>4      byte               243            \b, advanced simple @ L3
  450. >>4      byte               244            \b, advanced simple @ L4
  451. >>4      byte               245            \b, advanced simple @ L5
  452. >>4      byte               247            \b, advanced simple @ L3b
  453. >>4      byte               248            \b, FGS @ L0
  454. >>4      byte               249            \b, FGS @ L1
  455. >>4      byte               250            \b, FGS @ L2
  456. >>4      byte               251            \b, FGS @ L3
  457. >>4      byte               252            \b, FGS @ L4
  458. >>4      byte               253            \b, FGS @ L5
  459. >3       byte               0xB5           MPEG sequence, v4
  460. >>4      byte               &0x80
  461. >>>5     byte&0xF0          16             \b, video (missing profile header)
  462. >>>5     byte&0xF0          32             \b, still texture (missing profile header)
  463. >>>5     byte&0xF0          48             \b, mesh (missing profile header)
  464. >>>5     byte&0xF0          64             \b, face (missing profile header)
  465. >>4      byte&0xF8          8              \b, video (missing profile header)
  466. >>4      byte&0xF8          16             \b, still texture (missing profile header)
  467. >>4      byte&0xF8          24             \b, mesh (missing profile header)
  468. >>4      byte&0xF8          32             \b, face (missing profile header)
  469. >3       byte               0xB3           MPEG sequence
  470. >>12     belong             0x000001B8     \b, v1, progressive Y'CbCr 4:2:0 video
  471. >>12     belong             0x000001B2     \b, v1, progressive Y'CbCr 4:2:0 video
  472. >>12     belong             0x000001B5     \b, v2,
  473. >>>16    byte&0x0F          1              \b HP
  474. >>>16    byte&0x0F          2              \b Spt
  475. >>>16    byte&0x0F          3              \b SNR
  476. >>>16    byte&0x0F          4              \b MP
  477. >>>16    byte&0x0F          5              \b SP
  478. >>>17    byte&0xF0          64             \b@HL
  479. >>>17    byte&0xF0          96             \b@H-14
  480. >>>17    byte&0xF0          128            \b@ML
  481. >>>17    byte&0xF0          160            \b@LL
  482. >>>17    byte               &0x08          \b progressive
  483. >>>17    byte               ^0x08          \b interlaced
  484. >>>17    byte&0x06          2              \b Y'CbCr 4:2:0 video
  485. >>>17    byte&0x06          4              \b Y'CbCr 4:2:2 video
  486. >>>17    byte&0x06          6              \b Y'CbCr 4:4:4 video
  487. >>11     byte               &0x02
  488. >>>75    byte               &0x01
  489. >>>>140  belong             0x000001B8     \b, v1, progressive Y'CbCr 4:2:0 video
  490. >>>>140  belong             0x000001B2     \b, v1, progressive Y'CbCr 4:2:0 video
  491. >>>>140  belong             0x000001B5     \b, v2,
  492. >>>>>144 byte&0x0F          1              \b HP
  493. >>>>>144 byte&0x0F          2              \b Spt
  494. >>>>>144 byte&0x0F          3              \b SNR
  495. >>>>>144 byte&0x0F          4              \b MP
  496. >>>>>144 byte&0x0F          5              \b SP
  497. >>>>>145 byte&0xF0          64             \b@HL
  498. >>>>>145 byte&0xF0          96             \b@H-14
  499. >>>>>145 byte&0xF0          128            \b@ML
  500. >>>>>145 byte&0xF0          160            \b@LL
  501. >>>>>145 byte               &0x08          \b progressive
  502. >>>>>145 byte               ^0x08          \b interlaced
  503. >>>>>145 byte&0x06          2              \b Y'CbCr 4:2:0 video
  504. >>>>>145 byte&0x06          4              \b Y'CbCr 4:2:2 video
  505. >>>>>145 byte&0x06          6              \b Y'CbCr 4:4:4 video
  506. >>76    belong             0x000001B8     \b, v1, progressive Y'CbCr 4:2:0 video
  507. >>76    belong             0x000001B2     \b, v1, progressive Y'CbCr 4:2:0 video
  508. >>76    belong             0x000001B5     \b, v2,
  509. >>>80   byte&0x0F          1              \b HP
  510. >>>80   byte&0x0F          2              \b Spt
  511. >>>80   byte&0x0F          3              \b SNR
  512. >>>80   byte&0x0F          4              \b MP
  513. >>>80   byte&0x0F          5              \b SP
  514. >>>81   byte&0xF0          64             \b@HL
  515. >>>81   byte&0xF0          96             \b@H-14
  516. >>>81   byte&0xF0          128            \b@ML
  517. >>>81   byte&0xF0          160            \b@LL
  518. >>>81   byte               &0x08          \b progressive
  519. >>>81   byte               ^0x08          \b interlaced
  520. >>>81   byte&0x06          2              \b Y'CbCr 4:2:0 video
  521. >>>81   byte&0x06          4              \b Y'CbCr 4:2:2 video
  522. >>>81   byte&0x06          6              \b Y'CbCr 4:4:4 video
  523. >>4      belong&0xFFFFFF00  0x78043800     \b, HD-TV 1920P
  524. >>>7     byte&0xF0          0x10           \b, 16:9
  525. >>4      belong&0xFFFFFF00  0x50002D00     \b, SD-TV 1280I
  526. >>>7     byte&0xF0          0x10           \b, 16:9
  527. >>4      belong&0xFFFFFF00  0x30024000     \b, PAL Capture
  528. >>>7     byte&0xF0          0x10           \b, 4:3
  529. >>4      beshort&0xFFF0     0x2C00         \b, 4CIF
  530. >>>5     beshort&0x0FFF     0x01E0         \b NTSC
  531. >>>5     beshort&0x0FFF     0x0240         \b PAL
  532. >>>7     byte&0xF0          0x20           \b, 4:3
  533. >>>7     byte&0xF0          0x30           \b, 16:9
  534. >>>7     byte&0xF0          0x40           \b, 11:5
  535. >>>7     byte&0xF0          0x80           \b, PAL 4:3
  536. >>>7     byte&0xF0          0xC0           \b, NTSC 4:3
  537. >>4      belong&0xFFFFFF00  0x2801E000     \b, LD-TV 640P
  538. >>>7     byte&0xF0          0x10           \b, 4:3
  539. >>4      belong&0xFFFFFF00  0x1400F000     \b, 320x240
  540. >>>7     byte&0xF0          0x10           \b, 4:3
  541. >>4      belong&0xFFFFFF00  0x0F00A000     \b, 240x160
  542. >>>7     byte&0xF0          0x10           \b, 4:3
  543. >>4      belong&0xFFFFFF00  0x0A007800     \b, 160x120
  544. >>>7     byte&0xF0          0x10           \b, 4:3
  545. >>4      beshort&0xFFF0     0x1600         \b, CIF
  546. >>>5     beshort&0x0FFF     0x00F0         \b NTSC
  547. >>>5     beshort&0x0FFF     0x0120         \b PAL
  548. >>>7     byte&0xF0          0x20           \b, 4:3
  549. >>>7     byte&0xF0          0x30           \b, 16:9
  550. >>>7     byte&0xF0          0x40           \b, 11:5
  551. >>>7     byte&0xF0          0x80           \b, PAL 4:3
  552. >>>7     byte&0xF0          0xC0           \b, NTSC 4:3
  553. >>>5     beshort&0x0FFF     0x0240         \b PAL 625
  554. >>>>7    byte&0xF0          0x20           \b, 4:3
  555. >>>>7    byte&0xF0          0x30           \b, 16:9
  556. >>>>7    byte&0xF0          0x40           \b, 11:5
  557. >>4      beshort&0xFFF0     0x2D00         \b, CCIR/ITU
  558. >>>5     beshort&0x0FFF     0x01E0         \b NTSC 525
  559. >>>5     beshort&0x0FFF     0x0240         \b PAL 625
  560. >>>7     byte&0xF0          0x20           \b, 4:3
  561. >>>7     byte&0xF0          0x30           \b, 16:9
  562. >>>7     byte&0xF0          0x40           \b, 11:5
  563. >>4      beshort&0xFFF0     0x1E00         \b, SVCD
  564. >>>5     beshort&0x0FFF     0x01E0         \b NTSC 525
  565. >>>5     beshort&0x0FFF     0x0240         \b PAL 625
  566. >>>7     byte&0xF0          0x20           \b, 4:3
  567. >>>7     byte&0xF0          0x30           \b, 16:9
  568. >>>7     byte&0xF0          0x40           \b, 11:5
  569. >>7      byte&0x0F          1              \b, 23.976 fps
  570. >>7      byte&0x0F          2              \b, 24 fps
  571. >>7      byte&0x0F          3              \b, 25 fps
  572. >>7      byte&0x0F          4              \b, 29.97 fps
  573. >>7      byte&0x0F          5              \b, 30 fps
  574. >>7      byte&0x0F          6              \b, 50 fps
  575. >>7      byte&0x0F          7              \b, 59.94 fps
  576. >>7      byte&0x0F          8              \b, 60 fps
  577. >>11     byte               &0x04          \b, Constrained
  578.  
  579. # MPEG ADTS Audio (*.mpx/mxa/aac)
  580. # from dreesen@math.fu-berlin.de
  581. # modified to fully support MPEG ADTS
  582.  
  583. # MP3, M1A
  584. # modified by Joerg Jenderek
  585. # GRR the original test are too common for many DOS files
  586. # so don't accept as MP3 until we've tested the rate
  587. 0       beshort&0xFFFE  0xFFFA
  588. # rates
  589. >2      byte&0xF0       0x10           MPEG ADTS, layer III, v1,  32 kbps
  590. !:mime    audio/mpeg
  591. >2      byte&0xF0       0x20           MPEG ADTS, layer III, v1,  40 kbps
  592. !:mime    audio/mpeg
  593. >2      byte&0xF0       0x30           MPEG ADTS, layer III, v1,  48 kbps
  594. !:mime    audio/mpeg
  595. >2      byte&0xF0       0x40           MPEG ADTS, layer III, v1,  56 kbps
  596. !:mime    audio/mpeg
  597. >2      byte&0xF0       0x50           MPEG ADTS, layer III, v1,  64 kbps
  598. !:mime    audio/mpeg
  599. >2      byte&0xF0       0x60           MPEG ADTS, layer III, v1,  80 kbps
  600. !:mime    audio/mpeg
  601. >2      byte&0xF0       0x70           MPEG ADTS, layer III, v1,  96 kbps
  602. !:mime    audio/mpeg
  603. >2      byte&0xF0       0x80           MPEG ADTS, layer III, v1, 112 kbps
  604. !:mime    audio/mpeg
  605. >2      byte&0xF0       0x90           MPEG ADTS, layer III, v1, 128 kbps
  606. !:mime    audio/mpeg
  607. >2      byte&0xF0       0xA0           MPEG ADTS, layer III, v1, 160 kbps
  608. !:mime    audio/mpeg
  609. >2      byte&0xF0       0xB0           MPEG ADTS, layer III, v1, 192 kbps
  610. !:mime    audio/mpeg
  611. >2      byte&0xF0       0xC0           MPEG ADTS, layer III, v1, 224 kbps
  612. !:mime    audio/mpeg
  613. >2      byte&0xF0       0xD0           MPEG ADTS, layer III, v1, 256 kbps
  614. !:mime    audio/mpeg
  615. >2      byte&0xF0       0xE0           MPEG ADTS, layer III, v1, 320 kbps
  616. !:mime    audio/mpeg
  617. # timing
  618. >2      byte&0x0C       0x00           \b, 44.1 kHz
  619. >2      byte&0x0C       0x04           \b, 48 kHz
  620. >2      byte&0x0C       0x08           \b, 32 kHz
  621. # channels/options
  622. >3      byte&0xC0       0x00           \b, Stereo
  623. >3      byte&0xC0       0x40           \b, JntStereo
  624. >3      byte&0xC0       0x80           \b, 2x Monaural
  625. >3      byte&0xC0       0xC0           \b, Monaural
  626. #>1     byte            ^0x01          \b, Data Verify
  627. #>2     byte            &0x02          \b, Packet Pad
  628. #>2     byte            &0x01          \b, Custom Flag
  629. #>3     byte            &0x08          \b, Copyrighted
  630. #>3     byte            &0x04          \b, Original Source
  631. #>3     byte&0x03       1              \b, NR: 50/15 ms
  632. #>3     byte&0x03       3              \b, NR: CCIT J.17
  633.  
  634. # MP2, M1A
  635. 0       beshort&0xFFFE  0xFFFC         MPEG ADTS, layer II, v1
  636. !:mime    audio/mpeg
  637. # rates
  638. >2      byte&0xF0       0x10           \b,  32 kbps
  639. >2      byte&0xF0       0x20           \b,  48 kbps
  640. >2      byte&0xF0       0x30           \b,  56 kbps
  641. >2      byte&0xF0       0x40           \b,  64 kbps
  642. >2      byte&0xF0       0x50           \b,  80 kbps
  643. >2      byte&0xF0       0x60           \b,  96 kbps
  644. >2      byte&0xF0       0x70           \b, 112 kbps
  645. >2      byte&0xF0       0x80           \b, 128 kbps
  646. >2      byte&0xF0       0x90           \b, 160 kbps
  647. >2      byte&0xF0       0xA0           \b, 192 kbps
  648. >2      byte&0xF0       0xB0           \b, 224 kbps
  649. >2      byte&0xF0       0xC0           \b, 256 kbps
  650. >2      byte&0xF0       0xD0           \b, 320 kbps
  651. >2      byte&0xF0       0xE0           \b, 384 kbps
  652. # timing
  653. >2      byte&0x0C       0x00           \b, 44.1 kHz
  654. >2      byte&0x0C       0x04           \b, 48 kHz
  655. >2      byte&0x0C       0x08           \b, 32 kHz
  656. # channels/options
  657. >3      byte&0xC0       0x00           \b, Stereo
  658. >3      byte&0xC0       0x40           \b, JntStereo
  659. >3      byte&0xC0       0x80           \b, 2x Monaural
  660. >3      byte&0xC0       0xC0           \b, Monaural
  661. #>1     byte            ^0x01          \b, Data Verify
  662. #>2     byte            &0x02          \b, Packet Pad
  663. #>2     byte            &0x01          \b, Custom Flag
  664. #>3     byte            &0x08          \b, Copyrighted
  665. #>3     byte            &0x04          \b, Original Source
  666. #>3     byte&0x03       1              \b, NR: 50/15 ms
  667. #>3     byte&0x03       3              \b, NR: CCIT J.17
  668.  
  669. # MPA, M1A
  670. # updated by Joerg Jenderek
  671. # GRR the original test are too common for many DOS files, so test 32 <= kbits <= 448
  672. # GRR this test is still too general as it catches a BOM of UTF-16 files (0xFFFE)
  673. # FIXME: Almost all little endian UTF-16 text with BOM are clobbered by these entries
  674. #0    beshort&0xFFFE        0xFFFE    
  675. #>2    ubyte&0xF0    >0x0F        
  676. #>>2    ubyte&0xF0    <0xE1        MPEG ADTS, layer I, v1
  677. ## rate
  678. #>>>2      byte&0xF0       0x10           \b,  32 kbps
  679. #>>>2      byte&0xF0       0x20           \b,  64 kbps
  680. #>>>2      byte&0xF0       0x30           \b,  96 kbps
  681. #>>>2      byte&0xF0       0x40           \b, 128 kbps
  682. #>>>2      byte&0xF0       0x50           \b, 160 kbps
  683. #>>>2      byte&0xF0       0x60           \b, 192 kbps
  684. #>>>2      byte&0xF0       0x70           \b, 224 kbps
  685. #>>>2      byte&0xF0       0x80           \b, 256 kbps
  686. #>>>2      byte&0xF0       0x90           \b, 288 kbps
  687. #>>>2      byte&0xF0       0xA0           \b, 320 kbps
  688. #>>>2      byte&0xF0       0xB0           \b, 352 kbps
  689. #>>>2      byte&0xF0       0xC0           \b, 384 kbps
  690. #>>>2      byte&0xF0       0xD0           \b, 416 kbps
  691. #>>>2      byte&0xF0       0xE0           \b, 448 kbps
  692. ## timing
  693. #>>>2      byte&0x0C       0x00           \b, 44.1 kHz
  694. #>>>2      byte&0x0C       0x04           \b, 48 kHz
  695. #>>>2      byte&0x0C       0x08           \b, 32 kHz
  696. ## channels/options
  697. #>>>3      byte&0xC0       0x00           \b, Stereo
  698. #>>>3      byte&0xC0       0x40           \b, JntStereo
  699. #>>>3      byte&0xC0       0x80           \b, 2x Monaural
  700. #>>>3      byte&0xC0       0xC0           \b, Monaural
  701. ##>1     byte            ^0x01          \b, Data Verify
  702. ##>2     byte            &0x02          \b, Packet Pad
  703. ##>2     byte            &0x01          \b, Custom Flag
  704. ##>3     byte            &0x08          \b, Copyrighted
  705. ##>3     byte            &0x04          \b, Original Source
  706. ##>3     byte&0x03       1              \b, NR: 50/15 ms
  707. ##>3     byte&0x03       3              \b, NR: CCIT J.17
  708.  
  709. # MP3, M2A
  710. 0       beshort&0xFFFE  0xFFF2         MPEG ADTS, layer III, v2
  711. !:mime    audio/mpeg
  712. # rate
  713. >2      byte&0xF0       0x10           \b,   8 kbps
  714. >2      byte&0xF0       0x20           \b,  16 kbps
  715. >2      byte&0xF0       0x30           \b,  24 kbps
  716. >2      byte&0xF0       0x40           \b,  32 kbps
  717. >2      byte&0xF0       0x50           \b,  40 kbps
  718. >2      byte&0xF0       0x60           \b,  48 kbps
  719. >2      byte&0xF0       0x70           \b,  56 kbps
  720. >2      byte&0xF0       0x80           \b,  64 kbps
  721. >2      byte&0xF0       0x90           \b,  80 kbps
  722. >2      byte&0xF0       0xA0           \b,  96 kbps
  723. >2      byte&0xF0       0xB0           \b, 112 kbps
  724. >2      byte&0xF0       0xC0           \b, 128 kbps
  725. >2      byte&0xF0       0xD0           \b, 144 kbps
  726. >2      byte&0xF0       0xE0           \b, 160 kbps
  727. # timing
  728. >2      byte&0x0C       0x00           \b, 22.05 kHz
  729. >2      byte&0x0C       0x04           \b, 24 kHz
  730. >2      byte&0x0C       0x08           \b, 16 kHz
  731. # channels/options
  732. >3      byte&0xC0       0x00           \b, Stereo
  733. >3      byte&0xC0       0x40           \b, JntStereo
  734. >3      byte&0xC0       0x80           \b, 2x Monaural
  735. >3      byte&0xC0       0xC0           \b, Monaural
  736. #>1     byte            ^0x01          \b, Data Verify
  737. #>2     byte            &0x02          \b, Packet Pad
  738. #>2     byte            &0x01          \b, Custom Flag
  739. #>3     byte            &0x08          \b, Copyrighted
  740. #>3     byte            &0x04          \b, Original Source
  741. #>3     byte&0x03       1              \b, NR: 50/15 ms
  742. #>3     byte&0x03       3              \b, NR: CCIT J.17
  743.  
  744. # MP2, M2A
  745. 0       beshort&0xFFFE  0xFFF4         MPEG ADTS, layer II, v2
  746. # rate 
  747. >2      byte&0xF0       0x10           \b,   8 kbps
  748. >2      byte&0xF0       0x20           \b,  16 kbps 
  749. >2      byte&0xF0       0x30           \b,  24 kbps
  750. >2      byte&0xF0       0x40           \b,  32 kbps
  751. >2      byte&0xF0       0x50           \b,  40 kbps
  752. >2      byte&0xF0       0x60           \b,  48 kbps
  753. >2      byte&0xF0       0x70           \b,  56 kbps
  754. >2      byte&0xF0       0x80           \b,  64 kbps
  755. >2      byte&0xF0       0x90           \b,  80 kbps
  756. >2      byte&0xF0       0xA0           \b,  96 kbps
  757. >2      byte&0xF0       0xB0           \b, 112 kbps
  758. >2      byte&0xF0       0xC0           \b, 128 kbps
  759. >2      byte&0xF0       0xD0           \b, 144 kbps
  760. >2      byte&0xF0       0xE0           \b, 160 kbps
  761. # timing
  762. >2      byte&0x0C       0x00           \b, 22.05 kHz
  763. >2      byte&0x0C       0x04           \b, 24 kHz
  764. >2      byte&0x0C       0x08           \b, 16 kHz
  765. # channels/options
  766. >3      byte&0xC0       0x00           \b, Stereo
  767. >3      byte&0xC0       0x40           \b, JntStereo
  768. >3      byte&0xC0       0x80           \b, 2x Monaural
  769. >3      byte&0xC0       0xC0           \b, Monaural
  770. #>1     byte            ^0x01          \b, Data Verify
  771. #>2     byte            &0x02          \b, Packet Pad
  772. #>2     byte            &0x01          \b, Custom Flag
  773. #>3     byte            &0x08          \b, Copyrighted
  774. #>3     byte            &0x04          \b, Original Source
  775. #>3     byte&0x03       1              \b, NR: 50/15 ms
  776. #>3     byte&0x03       3              \b, NR: CCIT J.17
  777.  
  778. # MPA, M2A
  779. 0       beshort&0xFFFE  0xFFF6         MPEG ADTS, layer I, v2
  780. # rate
  781. >2      byte&0xF0       0x10           \b,  32 kbps
  782. >2      byte&0xF0       0x20           \b,  48 kbps
  783. >2      byte&0xF0       0x30           \b,  56 kbps
  784. >2      byte&0xF0       0x40           \b,  64 kbps
  785. >2      byte&0xF0       0x50           \b,  80 kbps
  786. >2      byte&0xF0       0x60           \b,  96 kbps
  787. >2      byte&0xF0       0x70           \b, 112 kbps
  788. >2      byte&0xF0       0x80           \b, 128 kbps
  789. >2      byte&0xF0       0x90           \b, 144 kbps
  790. >2      byte&0xF0       0xA0           \b, 160 kbps
  791. >2      byte&0xF0       0xB0           \b, 176 kbps
  792. >2      byte&0xF0       0xC0           \b, 192 kbps
  793. >2      byte&0xF0       0xD0           \b, 224 kbps
  794. >2      byte&0xF0       0xE0           \b, 256 kbps
  795. # timing
  796. >2      byte&0x0C       0x00           \b, 22.05 kHz
  797. >2      byte&0x0C       0x04           \b, 24 kHz
  798. >2      byte&0x0C       0x08           \b, 16 kHz
  799. # channels/options
  800. >3      byte&0xC0       0x00           \b, Stereo
  801. >3      byte&0xC0       0x40           \b, JntStereo
  802. >3      byte&0xC0       0x80           \b, 2x Monaural
  803. >3      byte&0xC0       0xC0           \b, Monaural
  804. #>1     byte            ^0x01          \b, Data Verify
  805. #>2     byte            &0x02          \b, Packet Pad
  806. #>2     byte            &0x01          \b, Custom Flag
  807. #>3     byte            &0x08          \b, Copyrighted
  808. #>3     byte            &0x04          \b, Original Source
  809. #>3     byte&0x03       1              \b, NR: 50/15 ms
  810. #>3     byte&0x03       3              \b, NR: CCIT J.17
  811.  
  812. # MP3, M25A
  813. 0       beshort&0xFFFE  0xFFE2         MPEG ADTS, layer III,  v2.5
  814. # rate  
  815. >2      byte&0xF0       0x10           \b,   8 kbps
  816. >2      byte&0xF0       0x20           \b,  16 kbps
  817. >2      byte&0xF0       0x30           \b,  24 kbps
  818. >2      byte&0xF0       0x40           \b,  32 kbps
  819. >2      byte&0xF0       0x50           \b,  40 kbps
  820. >2      byte&0xF0       0x60           \b,  48 kbps
  821. >2      byte&0xF0       0x70           \b,  56 kbps
  822. >2      byte&0xF0       0x80           \b,  64 kbps
  823. >2      byte&0xF0       0x90           \b,  80 kbps
  824. >2      byte&0xF0       0xA0           \b,  96 kbps
  825. >2      byte&0xF0       0xB0           \b, 112 kbps
  826. >2      byte&0xF0       0xC0           \b, 128 kbps
  827. >2      byte&0xF0       0xD0           \b, 144 kbps
  828. >2      byte&0xF0       0xE0           \b, 160 kbps
  829. # timing
  830. >2      byte&0x0C       0x00           \b, 11.025 kHz
  831. >2      byte&0x0C       0x04           \b, 12 kHz
  832. >2      byte&0x0C       0x08           \b, 8 kHz
  833. # channels/options
  834. >3      byte&0xC0       0x00           \b, Stereo
  835. >3      byte&0xC0       0x40           \b, JntStereo
  836. >3      byte&0xC0       0x80           \b, 2x Monaural
  837. >3      byte&0xC0       0xC0           \b, Monaural
  838. #>1     byte            ^0x01          \b, Data Verify
  839. #>2     byte            &0x02          \b, Packet Pad
  840. #>2     byte            &0x01          \b, Custom Flag
  841. #>3     byte            &0x08          \b, Copyrighted
  842. #>3     byte            &0x04          \b, Original Source
  843. #>3     byte&0x03       1              \b, NR: 50/15 ms
  844. #>3     byte&0x03       3              \b, NR: CCIT J.17
  845.  
  846. # AAC (aka MPEG-2 NBC audio) and MPEG-4 audio
  847.  
  848. # Stored AAC streams (instead of the MP4 format)
  849. 0       string          ADIF           MPEG ADIF, AAC
  850. !:mime    audio/x-hx-aac-adif
  851. >4      byte            &0x80
  852. >>13    byte            &0x10          \b, VBR
  853. >>13    byte            ^0x10          \b, CBR
  854. >>16    byte&0x1E       0x02           \b, single stream
  855. >>16    byte&0x1E       0x04           \b, 2 streams
  856. >>16    byte&0x1E       0x06           \b, 3 streams
  857. >>16    byte            &0x08          \b, 4 or more streams
  858. >>16    byte            &0x10          \b, 8 or more streams
  859. >>4    byte            &0x80          \b, Copyrighted
  860. >>13   byte            &0x40          \b, Original Source
  861. >>13   byte            &0x20          \b, Home Flag
  862. >4      byte            ^0x80
  863. >>4     byte            &0x10          \b, VBR
  864. >>4     byte            ^0x10          \b, CBR
  865. >>7     byte&0x1E       0x02           \b, single stream
  866. >>7     byte&0x1E       0x04           \b, 2 streams
  867. >>7     byte&0x1E       0x06           \b, 3 streams
  868. >>7     byte            &0x08          \b, 4 or more streams
  869. >>7     byte            &0x10          \b, 8 or more streams
  870. >>4    byte            &0x40          \b, Original Stream(s)
  871. >>4    byte            &0x20          \b, Home Source
  872.  
  873. # Live or stored single AAC stream (used with MPEG-2 systems)
  874. 0       beshort&0xFFF6  0xFFF0         MPEG ADTS, AAC
  875. !:mime    audio/x-hx-aac-adts
  876. >1      byte            &0x08          \b, v2
  877. >1      byte            ^0x08          \b, v4
  878. # profile
  879. >>2     byte            &0xC0          \b LTP
  880. >2      byte&0xc0       0x00           \b Main
  881. >2      byte&0xc0       0x40           \b LC
  882. >2      byte&0xc0       0x80           \b SSR
  883. # timing
  884. >2      byte&0x3c       0x00           \b, 96 kHz
  885. >2      byte&0x3c       0x04           \b, 88.2 kHz
  886. >2      byte&0x3c       0x08           \b, 64 kHz
  887. >2      byte&0x3c       0x0c           \b, 48 kHz
  888. >2      byte&0x3c       0x10           \b, 44.1 kHz
  889. >2      byte&0x3c       0x14           \b, 32 kHz
  890. >2      byte&0x3c       0x18           \b, 24 kHz
  891. >2      byte&0x3c       0x1c           \b, 22.05 kHz
  892. >2      byte&0x3c       0x20           \b, 16 kHz
  893. >2      byte&0x3c       0x24           \b, 12 kHz
  894. >2      byte&0x3c       0x28           \b, 11.025 kHz
  895. >2      byte&0x3c       0x2c           \b, 8 kHz
  896. # channels
  897. >2      beshort&0x01c0  0x0040         \b, monaural
  898. >2      beshort&0x01c0  0x0080         \b, stereo
  899. >2      beshort&0x01c0  0x00c0         \b, stereo + center
  900. >2      beshort&0x01c0  0x0100         \b, stereo+center+LFE
  901. >2      beshort&0x01c0  0x0140         \b, surround
  902. >2      beshort&0x01c0  0x0180         \b, surround + LFE
  903. >2      beshort         &0x01C0        \b, surround + side
  904. #>1     byte            ^0x01           \b, Data Verify
  905. #>2     byte            &0x02           \b, Custom Flag
  906. #>3     byte            &0x20           \b, Original Stream
  907. #>3     byte            &0x10           \b, Home Source
  908. #>3     byte            &0x08           \b, Copyrighted
  909.  
  910. # Live MPEG-4 audio streams (instead of RTP FlexMux)
  911. 0       beshort&0xFFE0  0x56E0         MPEG-4 LOAS
  912. !:mime    audio/x-mp4a-latm
  913. #>1     beshort&0x1FFF  x              \b, %u byte packet
  914. >3      byte&0xE0       0x40
  915. >>4     byte&0x3C       0x04           \b, single stream
  916. >>4     byte&0x3C       0x08           \b, 2 streams
  917. >>4     byte&0x3C       0x0C           \b, 3 streams
  918. >>4     byte            &0x08          \b, 4 or more streams
  919. >>4     byte            &0x20          \b, 8 or more streams
  920. >3      byte&0xC0       0
  921. >>4     byte&0x78       0x08           \b, single stream
  922. >>4     byte&0x78       0x10           \b, 2 streams
  923. >>4     byte&0x78       0x18           \b, 3 streams
  924. >>4     byte            &0x20          \b, 4 or more streams
  925. >>4     byte            &0x40          \b, 8 or more streams
  926. # This magic isn't strong enough (matches plausible ISO-8859-1 text)
  927. #0       beshort         0x4DE1         MPEG-4 LO-EP audio stream
  928. #!:mime    audio/x-mp4a-latm
  929.  
  930. # Summary: FLI animation format
  931. # Created by: Daniel Quinlan <quinlan@yggdrasil.com>
  932. # Modified by (1): Abel Cheung <abelcheung@gmail.com> (avoid over-generic detection)
  933. 4    leshort        0xAF11
  934. # standard FLI always has 320x200 resolution and 8 bit color
  935. >8    leshort        320
  936. >>10    leshort        200
  937. >>>12    leshort        8            FLI animation, 320x200x8
  938. !:mime    video/x-fli
  939. >>>>6    leshort        x            \b, %d frames
  940. # frame speed is multiple of 1/70s
  941. >>>>16    leshort        x            \b, %d/70s per frame
  942.  
  943. # Summary: FLC animation format
  944. # Created by: Daniel Quinlan <quinlan@yggdrasil.com>
  945. # Modified by (1): Abel Cheung <abelcheung@gmail.com> (avoid over-generic detection)
  946. 4    leshort        0xAF12
  947. # standard FLC always use 8 bit color
  948. >12    leshort        8            FLC animation
  949. !:mime    video/x-flc
  950. >>8    leshort        x            \b, %d
  951. >>10    leshort        x            \bx%dx8
  952. >>6    uleshort    x            \b, %d frames
  953. >>16    uleshort    x            \b, %dms per frame
  954.  
  955. # DL animation format
  956. # XXX - collision with most `mips' magic
  957. #
  958. # I couldn't find a real magic number for these, however, this
  959. # -appears- to work.  Note that it might catch other files, too, so be
  960. # careful!
  961. #
  962. # Note that title and author appear in the two 20-byte chunks
  963. # at decimal offsets 2 and 22, respectively, but they are XOR'ed with
  964. # 255 (hex FF)!  The DL format is really bad.
  965. #
  966. #0    byte    1    DL version 1, medium format (160x100, 4 images/screen)
  967. #!:mime    video/x-unknown
  968. #>42    byte    x    - %d screens,
  969. #>43    byte    x    %d commands
  970. #0    byte    2    DL version 2
  971. #!:mime    video/x-unknown
  972. #>1    byte    1    - large format (320x200,1 image/screen),
  973. #>1    byte    2    - medium format (160x100,4 images/screen),
  974. #>1    byte    >2    - unknown format,
  975. #>42    byte    x    %d screens,
  976. #>43    byte    x    %d commands
  977. # Based on empirical evidence, DL version 3 have several nulls following the
  978. # \003.  Most of them start with non-null values at hex offset 0x34 or so.
  979. #0    string    \3\0\0\0\0\0\0\0\0\0\0\0    DL version 3
  980.  
  981. # iso 13818 transport stream
  982. #
  983. # from Oskar Schirmer <schirmer@scara.com> Feb 3, 2001 (ISO 13818.1)
  984. # (the following is a little bit restrictive and works fine for a stream
  985. #  that starts with PAT properly. it won't work for stream data, that is
  986. #  cut from an input device data right in the middle, but this shouldn't
  987. #  disturb)
  988. # syncbyte      8 bit    0x47
  989. # error_ind     1 bit    -
  990. # payload_start 1 bit    1
  991. # priority      1 bit    -
  992. # PID          13 bit    0x0000
  993. # scrambling    2 bit    -
  994. # adaptfld_ctrl 2 bit    1 or 3
  995. # conti_count   4 bit    0
  996. 0    belong&0xFF5FFF1F    0x47400010    MPEG transport stream data
  997. >188    byte            !0x47        CORRUPTED
  998.  
  999. # DIF digital video file format <mpruett@sgi.com>
  1000. 0    belong&0xffffff00    0x1f070000      DIF
  1001. >4    byte            &0x01        (DVCPRO) movie file
  1002. >4    byte            ^0x01        (DV) movie file
  1003. >3    byte            &0x80        (PAL)
  1004. >3    byte            ^0x80        (NTSC)
  1005.  
  1006. # Microsoft Advanced Streaming Format (ASF) <mpruett@sgi.com>
  1007. 0    belong            0x3026b275    Microsoft ASF
  1008. !:mime    video/x-ms-asf
  1009.  
  1010. # MNG Video Format, <URL:http://www.libpng.org/pub/mng/spec/>
  1011. 0    string            \x8aMNG        MNG video data,
  1012. !:mime    video/x-mng
  1013. >4    belong            !0x0d0a1a0a    CORRUPTED,
  1014. >4    belong            0x0d0a1a0a
  1015. >>16    belong    x                %ld x
  1016. >>20    belong    x                %ld
  1017.  
  1018. # JNG Video Format, <URL:http://www.libpng.org/pub/mng/spec/>
  1019. 0    string            \x8bJNG        JNG video data,
  1020. !:mime    video/x-jng
  1021. >4    belong            !0x0d0a1a0a    CORRUPTED,
  1022. >4    belong            0x0d0a1a0a
  1023. >>16    belong    x                %ld x
  1024. >>20    belong    x                %ld
  1025.  
  1026. # Vivo video (Wolfram Kleff)
  1027. 3    string        \x0D\x0AVersion:Vivo    Vivo video data
  1028.  
  1029. # VRML (Virtual Reality Modelling Language)
  1030. 0       string/b        #VRML\ V1.0\ ascii    VRML 1 file
  1031. !:mime    model/vrml
  1032. 0    string/b    #VRML\ V2.0\ utf8    ISO/IEC 14772 VRML 97 file
  1033. !:mime    model/vrml
  1034.  
  1035. # X3D (Extensible 3D) [http://www.web3d.org/specifications/x3d-3.0.dtd]
  1036. # From Michel Briand <michelbriand@free.fr>
  1037. 0    string        \<?xml\ version="
  1038. !:strength +1
  1039. >20    search/1000/cb  \<!DOCTYPE\ X3D        X3D (Extensible 3D) model xml text
  1040. !:mime model/x3d
  1041.  
  1042. #---------------------------------------------------------------------------
  1043. # HVQM4: compressed movie format designed by Hudson for Nintendo GameCube
  1044. # From Mark Sheppard <msheppard@climax.co.uk>, 2002-10-03
  1045. #
  1046. 0    string        HVQM4        %s
  1047. >6    string        >\0        v%s
  1048. >0    byte        x        GameCube movie,
  1049. >0x34    ubeshort    x        %d x
  1050. >0x36    ubeshort    x        %d,
  1051. >0x26    ubeshort    x        %d┬╡s,
  1052. >0x42    ubeshort    0        no audio
  1053. >0x42    ubeshort    >0        %dHz audio
  1054.  
  1055. # From: "Stefan A. Haubenthal" <polluks@web.de>
  1056. 0    string        DVDVIDEO-VTS    Video title set,
  1057. >0x21    byte        x        v%x
  1058. 0    string        DVDVIDEO-VMG    Video manager,
  1059. >0x21    byte        x        v%x
  1060.  
  1061. # From: Behan Webster <behanw@websterwood.com>
  1062. # NuppelVideo used by Mythtv (*.nuv)
  1063. # Note: there are two identical stanzas here differing only in the
  1064. # initial string matched. It used to be done with a regex, but we're
  1065. # trying to get rid of those.
  1066. 0    string        NuppelVideo    MythTV NuppelVideo
  1067. >12    string        x        v%s
  1068. >20    lelong        x        (%d
  1069. >24    lelong        x        \bx%d),
  1070. >36    string        P        \bprogressive,
  1071. >36    string        I        \binterlaced,
  1072. >40    ledouble    x        \baspect:%.2f,
  1073. >48    ledouble    x        \bfps:%.2f
  1074. 0    string        MythTV        MythTV NuppelVideo
  1075. >12    string        x        v%s
  1076. >20    lelong        x        (%d
  1077. >24    lelong        x        \bx%d),
  1078. >36    string        P        \bprogressive,
  1079. >36    string        I        \binterlaced,
  1080. >40    ledouble    x        \baspect:%.2f,
  1081. >48    ledouble    x        \bfps:%.2f
  1082.  
  1083. #                        MPEG file
  1084. # MPEG sequences
  1085. # FIXME: This section is from the old magic.mime file and needs integrating with the rest
  1086. 0       belong             0x000001BA
  1087. >4      byte               &0x40
  1088. !:mime    video/mp2p
  1089. >4      byte               ^0x40
  1090. !:mime    video/mpeg
  1091. 0       belong             0x000001BB
  1092. !:mime    video/mpeg
  1093. 0       belong             0x000001B0
  1094. !:mime    video/mp4v-es
  1095. 0       belong             0x000001B5
  1096. !:mime    video/mp4v-es
  1097. 0       belong             0x000001B3
  1098. !:mime    video/mpv
  1099. 0       belong&0xFF5FFF1F  0x47400010
  1100. !:mime    video/mp2t
  1101. 0       belong             0x00000001
  1102. >4      byte&0x1F       0x07
  1103. !:mime    video/h264
  1104.  
  1105. # Type: Bink Video
  1106. # URL:  http://wiki.multimedia.cx/index.php?title=3DBink_Container
  1107. # From: <hoehle@users.sourceforge.net>  2008-07-18
  1108. 0    string        BIK    Bink Video
  1109. >3    regex        =[a-z]    rev.%s
  1110. #>4    ulelong        x    size %d
  1111. >20    ulelong        x    \b, %d
  1112. >24    ulelong        x    \bx%d
  1113. >8    ulelong        x    \b, %d frames
  1114. >32    ulelong        x    at rate %d/
  1115. >28    ulelong        >1    \b%d
  1116. >40    ulelong        =0    \b, no audio
  1117. >40    ulelong        !0    \b, %d audio track
  1118. >>40    ulelong        !1    \bs
  1119. # follow properties of the first audio track only
  1120. >>48    uleshort    x    %dHz
  1121. >>51    byte&0x20    0    mono
  1122. >>51    byte&0x20    !0    stereo
  1123. #>>51    byte&0x10    0    FFT
  1124. #>>51    byte&0x10    !0    DCT
  1125.  
  1126. #------------------------------------------------------------------------------
  1127. # apl:  file(1) magic for APL (see also "pdp" and "vax" for other APL
  1128. #       workspaces)
  1129. #
  1130. 0    long        0100554        APL workspace (Ken's original?)
  1131. #------------------------------------------------------------------------------
  1132. # apple:  file(1) magic for Apple file formats
  1133. #
  1134. 0    search/1    FiLeStArTfIlEsTaRt    binscii (apple ][) text
  1135. 0    string        \x0aGL            Binary II (apple ][) data
  1136. 0    string        \x76\xff        Squeezed (apple ][) data
  1137. 0    string        NuFile            NuFile archive (apple ][) data
  1138. 0    string        N\xf5F\xe9l\xe5        NuFile archive (apple ][) data
  1139. 0    belong        0x00051600        AppleSingle encoded Macintosh file
  1140. 0    belong        0x00051607        AppleDouble encoded Macintosh file
  1141.  
  1142. # Type: Apple Emulator 2IMG format
  1143. # From: Radek Vokal <rvokal@redhat.com>
  1144. 0    string        2IMG    Apple ][ 2IMG Disk Image
  1145. >4    string        XGS!    \b, XGS
  1146. >4    string        CTKG    \b, Catakig
  1147. >4    string        ShIm    \b, Sheppy's ImageMaker
  1148. >4    string        WOOF    \b, Sweet 16
  1149. >4    string        B2TR    \b, Bernie ][ the Rescue
  1150. >4    string        !nfc    \b, ASIMOV2
  1151. >4    string        x    \b, Unknown Format
  1152. >0xc    byte        00    \b, DOS 3.3 sector order
  1153. >>0x10    byte        00    \b, Volume 254
  1154. >>0x10    byte&0x7f    x    \b, Volume %u
  1155. >0xc    byte        01    \b, ProDOS sector order
  1156. >>0x14    short        x    \b, %u Blocks
  1157. >0xc    byte        02    \b, NIB data
  1158.  
  1159. # magic for Newton PDA package formats
  1160. # from Ruda Moura <ruda@helllabs.org>
  1161. 0    string    package0    Newton package, NOS 1.x,
  1162. >12    belong    &0x80000000    AutoRemove,
  1163. >12    belong    &0x40000000    CopyProtect,
  1164. >12    belong    &0x10000000    NoCompression,
  1165. >12    belong    &0x04000000    Relocation,
  1166. >12    belong    &0x02000000    UseFasterCompression,
  1167. >16    belong    x        version %d
  1168.  
  1169. 0    string    package1    Newton package, NOS 2.x,
  1170. >12    belong    &0x80000000    AutoRemove,
  1171. >12    belong    &0x40000000    CopyProtect,
  1172. >12    belong    &0x10000000    NoCompression,
  1173. >12    belong    &0x04000000    Relocation,
  1174. >12    belong    &0x02000000    UseFasterCompression,
  1175. >16    belong    x        version %d
  1176.  
  1177. 0    string    package4    Newton package,
  1178. >8    byte    8        NOS 1.x,
  1179. >8    byte    9        NOS 2.x,
  1180. >12    belong    &0x80000000    AutoRemove,
  1181. >12    belong    &0x40000000    CopyProtect,
  1182. >12    belong    &0x10000000    NoCompression,
  1183.  
  1184. # The following entries for the Apple II are for files that have
  1185. # been transferred as raw binary data from an Apple, without having
  1186. # been encapsulated by any of the above archivers.
  1187. #
  1188. # In general, Apple II formats are hard to identify because Apple DOS
  1189. # and especially Apple ProDOS have strong typing in the file system and
  1190. # therefore programmers never felt much need to include type information
  1191. # in the files themselves.
  1192. #
  1193. # Eric Fischer <enf@pobox.com>
  1194.  
  1195. # AppleWorks word processor:
  1196. #
  1197. # This matches the standard tab stops for an AppleWorks file, but if
  1198. # a file has a tab stop set in the first four columns this will fail.
  1199. #
  1200. # The "O" is really the magic number, but that's so common that it's
  1201. # necessary to check the tab stops that follow it to avoid false positives.
  1202.  
  1203. 4       string          O====   AppleWorks word processor data
  1204. >85     byte&0x01       >0      \b, zoomed
  1205. >90     byte&0x01       >0      \b, paginated
  1206. >92     byte&0x01       >0      \b, with mail merge
  1207. #>91    byte            x       \b, left margin %d
  1208.  
  1209. # AppleWorks database:
  1210. #
  1211. # This isn't really a magic number, but it's the closest thing to one
  1212. # that I could find.  The 1 and 2 really mean "order in which you defined
  1213. # categories" and "left to right, top to bottom," respectively; the D and R
  1214. # mean that the cursor should move either down or right when you press Return.
  1215.  
  1216. #30    string        \x01D    AppleWorks database data
  1217. #30    string        \x02D    AppleWorks database data
  1218. #30    string        \x01R    AppleWorks database data
  1219. #30    string        \x02R    AppleWorks database data
  1220.  
  1221. # AppleWorks spreadsheet:
  1222. #
  1223. # Likewise, this isn't really meant as a magic number.  The R or C means
  1224. # row- or column-order recalculation; the A or M means automatic or manual
  1225. # recalculation.
  1226.  
  1227. #131    string        RA    AppleWorks spreadsheet data
  1228. #131    string        RM    AppleWorks spreadsheet data
  1229. #131    string        CA    AppleWorks spreadsheet data
  1230. #131    string        CM    AppleWorks spreadsheet data
  1231.  
  1232. # Applesoft BASIC:
  1233. #
  1234. # This is incredibly sloppy, but will be true if the program was
  1235. # written at its usual memory location of 2048 and its first line
  1236. # number is less than 256.  Yuck.
  1237.  
  1238. 0       belong&0xff00ff 0x80000 Applesoft BASIC program data
  1239. #>2     leshort         x       \b, first line number %d
  1240.  
  1241. # ORCA/EZ assembler:
  1242. # This will not identify ORCA/M source files, since those have
  1243. # some sort of date code instead of the two zero bytes at 6 and 7
  1244. # XXX Conflicts with ELF
  1245. #4       belong&0xff00ffff       0x01000000      ORCA/EZ assembler source data
  1246. #>5      byte                    x               \b, build number %d
  1247.  
  1248. # Broderbund Fantavision
  1249. #
  1250. # I don't know what these values really mean, but they seem to recur.
  1251. # Will they cause too many conflicts?
  1252.  
  1253. # Probably :-)
  1254. #2    belong&0xFF00FF        0x040008    Fantavision movie data
  1255.  
  1256. # Some attempts at images.
  1257. #
  1258. # These are actually just bit-for-bit dumps of the frame buffer, so
  1259. # there's really no reasonably way to distinguish them except for their
  1260. # address (if preserved) -- 8192 or 16384 -- and their length -- 8192
  1261. # or, occasionally, 8184.
  1262. #
  1263. # Nevertheless this will manage to catch a lot of images that happen
  1264. # to have a solid-colored line at the bottom of the screen.
  1265.  
  1266. # GRR: Magic too weak
  1267. #8144    string    \x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F    Apple II image with white background
  1268. #8144    string    \x55\x2A\x55\x2A\x55\x2A\x55\x2A    Apple II image with purple background
  1269. #8144    string    \x2A\x55\x2A\x55\x2A\x55\x2A\x55    Apple II image with green background
  1270. #8144    string    \xD5\xAA\xD5\xAA\xD5\xAA\xD5\xAA    Apple II image with blue background
  1271. #8144    string    \xAA\xD5\xAA\xD5\xAA\xD5\xAA\xD5    Apple II image with orange background
  1272.  
  1273. # Beagle Bros. Apple Mechanic fonts
  1274.  
  1275. 0    belong&0xFF00FFFF    0x6400D000    Apple Mechanic font
  1276.  
  1277. # Apple Universal Disk Image Format (UDIF) - dmg files.
  1278. # From Johan Gade.
  1279. # These entries are disabled for now until we fix the following issues.
  1280. #
  1281. # Note there might be some problems with the "VAX COFF executable" 
  1282. # entry. Note this entry should be placed before the mac filesystem section, 
  1283. # particularly the "Apple Partition data" entry.
  1284. #
  1285. # The intended meaning of these tests is, that the file is only of the 
  1286. # specified type if both of the lines are correct - i.e. if the first
  1287. # line matches and the second doesn't then it is not of that type.
  1288. #
  1289. #0    long    0x7801730d
  1290. #>4    long    0x62626060    UDIF read-only zlib-compressed image (UDZO)
  1291. #
  1292. # Note that this entry is recognized correctly by the "Apple Partition 
  1293. # data" entry - however since this entry is more specific - this
  1294. # information seems to be more useful.
  1295. #0    long    0x45520200
  1296. #>0x410    string    disk\ image    UDIF read/write image (UDRW)
  1297.  
  1298. # From: Toby Peterson <toby@apple.com>
  1299. 0    string    bplist00    Apple binary property list
  1300.  
  1301. # Apple binary property list (bplist)
  1302. #  Assumes version bytes are hex.
  1303. #  Provides content hints for version 0 files. Assumes that the root
  1304. #  object is the first object (true for CoreFoundation implementation).
  1305. # From: David Remahl <dremahl@apple.com>
  1306. 0        string    bplist
  1307. >6        byte    x    \bCoreFoundation binary property list data, version 0x%c
  1308. >>7        byte    x    \b%c
  1309. >6        string        00        \b
  1310. >>8        byte&0xF0    0x00    \b
  1311. >>>8    byte&0x0F    0x00    \b, root type: null
  1312. >>>8    byte&0x0F    0x08    \b, root type: false boolean
  1313. >>>8    byte&0x0F    0x09    \b, root type: true boolean
  1314. >>8        byte&0xF0    0x10    \b, root type: integer
  1315. >>8        byte&0xF0    0x20    \b, root type: real
  1316. >>8        byte&0xF0    0x30    \b, root type: date
  1317. >>8        byte&0xF0    0x40    \b, root type: data
  1318. >>8        byte&0xF0    0x50    \b, root type: ascii string
  1319. >>8        byte&0xF0    0x60    \b, root type: unicode string
  1320. >>8        byte&0xF0    0x80    \b, root type: uid (CORRUPT)
  1321. >>8        byte&0xF0    0xa0    \b, root type: array
  1322. >>8        byte&0xF0    0xd0    \b, root type: dictionary
  1323.  
  1324. # Apple/NeXT typedstream data
  1325. #  Serialization format used by NeXT and Apple for various
  1326. #  purposes in YellowStep/Cocoa, including some nib files.
  1327. # From: David Remahl <dremahl@apple.com>
  1328. 2        string        typedstream    NeXT/Apple typedstream data, big endian
  1329. >0        byte        x        \b, version %hhd
  1330. >0        byte        <5        \b
  1331. >>13    byte        0x81    \b
  1332. >>>14    ubeshort    x        \b, system %hd
  1333. 2        string        streamtyped NeXT/Apple typedstream data, little endian
  1334. >0        byte        x        \b, version %hhd
  1335. >0        byte        <5        \b
  1336. >>13    byte        0x81    \b
  1337. >>>14    uleshort    x        \b, system %hd
  1338.  
  1339. #------------------------------------------------------------------------------
  1340. # CAF: Apple CoreAudio File Format
  1341. #
  1342. # Container format for high-end audio purposes.
  1343. # From: David Remahl <dremahl@apple.com>
  1344. #
  1345. 0    string        caff        CoreAudio Format audio file
  1346. >4    beshort        <10        version %d
  1347. >6    beshort        x
  1348.  
  1349.  
  1350. #------------------------------------------------------------------------------
  1351. # Keychain database files
  1352. 0    string        kych        Mac OS X Keychain File
  1353.  
  1354. #------------------------------------------------------------------------------
  1355. # Code Signing related file types
  1356. 0    belong        0xfade0c00    Mac OS X Code Requirement
  1357. >8    belong        1            (opExpr)
  1358. >4    belong        x            - %d bytes
  1359.  
  1360. 0    belong        0xfade0c01    Mac OS X Code Requirement Set
  1361. >8    belong        >1            containing %d items
  1362. >4    belong        x            - %d bytes
  1363.  
  1364. 0    belong        0xfade0c02    Mac OS X Code Directory
  1365. >8    belong        x            version %x
  1366. >12    belong        >0            flags 0x%x
  1367. >4    belong        x            - %d bytes
  1368.  
  1369. 0    belong        0xfade0cc0    Mac OS X Detached Code Signature (non-executable)
  1370. >4    belong        x            - %d bytes
  1371.  
  1372. 0    belong        0xfade0cc1    Mac OS X Detached Code Signature
  1373. >8    belong        >1            (%d elements)
  1374. >4    belong        x            - %d bytes
  1375.  
  1376. # From: "Nelson A. de Oliveira" <naoliv@gmail.com>
  1377. # .vdi
  1378. 4    string innotek\ VirtualBox\ Disk\ Image %s
  1379.  
  1380. #------------------------------------------------------------------------------
  1381. # applix:  file(1) magic for Applixware
  1382. # From: Peter Soos <sp@osb.hu>
  1383. #
  1384. 0    string        *BEGIN        Applixware
  1385. >7    string        WORDS            Words Document
  1386. >7    string        GRAPHICS        Graphic
  1387. >7    string        RASTER            Bitmap
  1388. >7    string        SPREADSHEETS        Spreadsheet
  1389. >7    string        MACRO            Macro
  1390. >7    string        BUILDER            Builder Object
  1391. #------------------------------------------------------------------------------
  1392. # archive:  file(1) magic for archive formats (see also "msdos" for self-
  1393. #           extracting compressed archives)
  1394. #
  1395. # cpio, ar, arc, arj, hpack, lha/lharc, rar, squish, uc2, zip, zoo, etc.
  1396. # pre-POSIX "tar" archives are handled in the C code.
  1397.  
  1398. # POSIX tar archives
  1399. 257    string        ustar\0        POSIX tar archive
  1400. !:mime    application/x-tar # encoding: posix
  1401. 257    string        ustar\040\040\0    GNU tar archive
  1402. !:mime    application/x-tar # encoding: gnu
  1403.  
  1404. # cpio archives
  1405. #
  1406. # Yes, the top two "cpio archive" formats *are* supposed to just be "short".
  1407. # The idea is to indicate archives produced on machines with the same
  1408. # byte order as the machine running "file" with "cpio archive", and
  1409. # to indicate archives produced on machines with the opposite byte order
  1410. # from the machine running "file" with "byte-swapped cpio archive".
  1411. #
  1412. # The SVR4 "cpio(4)" hints that there are additional formats, but they
  1413. # are defined as "short"s; I think all the new formats are
  1414. # character-header formats and thus are strings, not numbers.
  1415. 0    short        070707        cpio archive
  1416. !:mime    application/x-cpio
  1417. 0    short        0143561        byte-swapped cpio archive
  1418. !:mime    application/x-cpio # encoding: swapped
  1419. 0    string        070707        ASCII cpio archive (pre-SVR4 or odc)
  1420. 0    string        070701        ASCII cpio archive (SVR4 with no CRC)
  1421. 0    string        070702        ASCII cpio archive (SVR4 with CRC)
  1422.  
  1423. # Debian package (needs to go before regular portable archives)
  1424. #
  1425. 0    string        =!<arch>\ndebian
  1426. !:mime    application/x-debian-package
  1427. >8    string        debian-split    part of multipart Debian package
  1428. >8    string        debian-binary    Debian binary package
  1429. >8    string        !debian
  1430. >68    string        >\0        (format %s)
  1431. # These next two lines do not work, because a bzip2 Debian archive
  1432. # still uses gzip for the control.tar (first in the archive).  Only
  1433. # data.tar varies, and the location of its filename varies too.
  1434. # file/libmagic does not current have support for ascii-string based
  1435. # (offsets) as of 2005-09-15.
  1436. #>81    string        bz2        \b, uses bzip2 compression
  1437. #>84    string        gz        \b, uses gzip compression
  1438. #>136    ledate        x        created: %s
  1439.  
  1440. # other archives
  1441. 0    long        0177555        very old archive
  1442. 0    short        0177555        very old PDP-11 archive
  1443. 0    long        0177545        old archive
  1444. 0    short        0177545        old PDP-11 archive
  1445. 0    long        0100554        apl workspace
  1446. 0    string        =<ar>        archive
  1447. !:mime    application/x-archive
  1448.  
  1449. # MIPS archive (needs to go before regular portable archives)
  1450. #
  1451. 0    string    =!<arch>\n__________E    MIPS archive
  1452. >20    string    U            with MIPS Ucode members
  1453. >21    string    L            with MIPSEL members
  1454. >21    string    B            with MIPSEB members
  1455. >19    string    L            and an EL hash table
  1456. >19    string    B            and an EB hash table
  1457. >22    string    X            -- out of date
  1458.  
  1459. 0    search/1    -h-        Software Tools format archive text
  1460.  
  1461. #
  1462. # XXX - why are there multiple <ar> thingies?  Note that 0x213c6172 is
  1463. # "!<ar", so, for new-style (4.xBSD/SVR2andup) archives, we have:
  1464. #
  1465. # 0    string        =!<arch>        current ar archive
  1466. # 0    long        0x213c6172    archive file
  1467. #
  1468. # and for SVR1 archives, we have:
  1469. #
  1470. # 0    string        \<ar>        System V Release 1 ar archive
  1471. # 0    string        =<ar>        archive
  1472. #
  1473. # XXX - did Aegis really store shared libraries, breakpointed modules,
  1474. # and absolute code program modules in the same format as new-style
  1475. # "ar" archives?
  1476. #
  1477. 0    string        =!<arch>        current ar archive
  1478. !:mime    application/x-archive
  1479. >8    string        __.SYMDEF    random library
  1480. >0    belong        =65538        - pre SR9.5
  1481. >0    belong        =65539        - post SR9.5
  1482. >0    beshort        2        - object archive
  1483. >0    beshort        3        - shared library module
  1484. >0    beshort        4        - debug break-pointed module
  1485. >0    beshort        5        - absolute code program module
  1486. 0    string        \<ar>        System V Release 1 ar archive
  1487. 0    string        =<ar>        archive
  1488. #
  1489. # XXX - from "vax", which appears to collect a bunch of byte-swapped
  1490. # thingies, to help you recognize VAX files on big-endian machines;
  1491. # with "leshort", "lelong", and "string", that's no longer necessary....
  1492. #
  1493. 0    belong        0x65ff0000    VAX 3.0 archive
  1494. 0    belong        0x3c61723e    VAX 5.0 archive
  1495. #
  1496. 0    long        0x213c6172    archive file
  1497. 0    lelong        0177555        very old VAX archive
  1498. 0    leshort        0177555        very old PDP-11 archive
  1499. #
  1500. # XXX - "pdp" claims that 0177545 can have an __.SYMDEF member and thus
  1501. # be a random library (it said 0xff65 rather than 0177545).
  1502. #
  1503. 0    lelong        0177545        old VAX archive
  1504. >8    string        __.SYMDEF    random library
  1505. 0    leshort        0177545        old PDP-11 archive
  1506. >8    string        __.SYMDEF    random library
  1507. #
  1508. # From "pdp" (but why a 4-byte quantity?)
  1509. #
  1510. 0    lelong        0x39bed        PDP-11 old archive
  1511. 0    lelong        0x39bee        PDP-11 4.0 archive
  1512.  
  1513. # ARC archiver, from Daniel Quinlan (quinlan@yggdrasil.com)
  1514. #
  1515. # The first byte is the magic (0x1a), byte 2 is the compression type for
  1516. # the first file (0x01 through 0x09), and bytes 3 to 15 are the MS-DOS
  1517. # filename of the first file (null terminated).  Since some types collide
  1518. # we only test some types on basis of frequency: 0x08 (83%), 0x09 (5%),
  1519. # 0x02 (5%), 0x03 (3%), 0x04 (2%), 0x06 (2%).  0x01 collides with terminfo.
  1520. 0    lelong&0x8080ffff    0x0000081a    ARC archive data, dynamic LZW
  1521. !:mime    application/x-arc
  1522. 0    lelong&0x8080ffff    0x0000091a    ARC archive data, squashed
  1523. !:mime    application/x-arc
  1524. 0    lelong&0x8080ffff    0x0000021a    ARC archive data, uncompressed
  1525. !:mime    application/x-arc
  1526. 0    lelong&0x8080ffff    0x0000031a    ARC archive data, packed
  1527. !:mime    application/x-arc
  1528. 0    lelong&0x8080ffff    0x0000041a    ARC archive data, squeezed
  1529. !:mime    application/x-arc
  1530. 0    lelong&0x8080ffff    0x0000061a    ARC archive data, crunched
  1531. !:mime    application/x-arc
  1532. # [JW] stuff taken from idarc, obviously ARC successors:
  1533. 0    lelong&0x8080ffff    0x00000a1a    PAK archive data
  1534. !:mime    application/x-arc
  1535. 0    lelong&0x8080ffff    0x0000141a    ARC+ archive data
  1536. !:mime    application/x-arc
  1537. 0    lelong&0x8080ffff    0x0000481a    HYP archive data
  1538. !:mime    application/x-arc
  1539.  
  1540. # Acorn archive formats (Disaster prone simpleton, m91dps@ecs.ox.ac.uk)
  1541. # I can't create either SPARK or ArcFS archives so I have not tested this stuff
  1542. # [GRR:  the original entries collide with ARC, above; replaced with combined
  1543. #  version (not tested)]
  1544. #0    byte        0x1a        RISC OS archive (spark format)
  1545. 0    string        \032archive    RISC OS archive (ArcFS format)
  1546. 0       string          Archive\000     RISC OS archive (ArcFS format)
  1547.  
  1548. # All these were taken from idarc, many could not be verified. Unfortunately,
  1549. # there were many low-quality sigs, i.e. easy to trigger false positives.
  1550. # Please notify me of any real-world fishy/ambiguous signatures and I'll try
  1551. # to get my hands on the actual archiver and see if I find something better. [JW]
  1552. # probably many can be enhanced by finding some 0-byte or control char near the start
  1553.  
  1554. # idarc calls this Crush/Uncompressed... *shrug*
  1555. 0    string    CRUSH Crush archive data
  1556. # Squeeze It (.sqz)
  1557. 0    string    HLSQZ Squeeze It archive data
  1558. # SQWEZ
  1559. 0    string    SQWEZ SQWEZ archive data
  1560. # HPack (.hpk)
  1561. 0    string    HPAK HPack archive data
  1562. # HAP
  1563. 0    string    \x91\x33HF HAP archive data
  1564. # MD/MDCD
  1565. 0    string    MDmd MDCD archive data
  1566. # LIM
  1567. 0    string    LIM\x1a LIM archive data
  1568. # SAR
  1569. 3    string    LH5 SAR archive data
  1570. # BSArc/BS2
  1571. 0    string    \212\3SB \0 BSArc/BS2 archive data
  1572. # MAR
  1573. 2    string    =-ah MAR archive data
  1574. # ACB
  1575. 0    belong&0x00f800ff    0x00800000 ACB archive data
  1576. # CPZ
  1577. # TODO, this is what idarc says: 0    string    \0\0\0 CPZ archive data
  1578. # JRC
  1579. 0    string    JRchive JRC archive data
  1580. # Quantum
  1581. 0    string    DS\0 Quantum archive data
  1582. # ReSOF
  1583. 0    string    PK\3\6 ReSOF archive data
  1584. # QuArk
  1585. 0    string    7\4 QuArk archive data
  1586. # YAC
  1587. 14    string    YC YAC archive data
  1588. # X1
  1589. 0    string    X1 X1 archive data
  1590. 0    string    XhDr X1 archive data
  1591. # CDC Codec (.dqt)
  1592. 0    belong&0xffffe000    0x76ff2000 CDC Codec archive data
  1593. # AMGC
  1594. 0    string    \xad6" AMGC archive data
  1595. # NuLIB
  1596. 0    string    N├╡F├⌐l├Ñ NuLIB archive data
  1597. # PakLeo
  1598. 0    string    LEOLZW PAKLeo archive data
  1599. # ChArc
  1600. 0    string    SChF ChArc archive data
  1601. # PSA
  1602. 0    string    PSA PSA archive data
  1603. # CrossePAC
  1604. 0    string    DSIGDCC CrossePAC archive data
  1605. # Freeze
  1606. 0    string    \x1f\x9f\x4a\x10\x0a Freeze archive data
  1607. # KBoom
  1608. 0    string    ┬¿MP┬¿ KBoom archive data
  1609. # NSQ, must go after CDC Codec
  1610. 0    string    \x76\xff NSQ archive data
  1611. # DPA
  1612. 0    string    Dirk\ Paehl DPA archive data
  1613. # BA
  1614. # TODO: idarc says "bytes 0-2 == bytes 3-5"
  1615. # TTComp
  1616. 0    string    \0\6 TTComp archive data
  1617. # ESP, could this conflict with Easy Software Products' (e.g.ESP ghostscript) documentation?
  1618. 0    string    ESP ESP archive data
  1619. # ZPack
  1620. 0    string    \1ZPK\1 ZPack archive data
  1621. # Sky
  1622. 0    string    \xbc\x40 Sky archive data
  1623. # UFA
  1624. 0    string    UFA UFA archive data
  1625. # Dry
  1626. 0    string    =-H2O DRY archive data
  1627. # FoxSQZ
  1628. 0    string    FOXSQZ FoxSQZ archive data
  1629. # AR7
  1630. 0    string    ,AR7 AR7 archive data
  1631. # PPMZ
  1632. 0    string    PPMZ PPMZ archive data
  1633. # MS Compress
  1634. 4    string    \x88\xf0\x27 MS Compress archive data
  1635. # updated by Joerg Jenderek
  1636. >9    string    \0        
  1637. >>0    string    KWAJ        
  1638. >>>7    string    \321\003    MS Compress archive data
  1639. >>>>14    ulong    >0        \b, original size: %ld bytes
  1640. >>>>18        ubyte    >0x65      
  1641. >>>>>18        string    x        \b, was %.8s
  1642. >>>>>(10.b-4)    string    x        \b.%.3s
  1643. # MP3 (archiver, not lossy audio compression)
  1644. 0    string    MP3\x1a MP3-Archiver archive data
  1645. # ZET
  1646. 0    string    OZ├¥ ZET archive data
  1647. # TSComp
  1648. 0    string    \x65\x5d\x13\x8c\x08\x01\x03\x00 TSComp archive data
  1649. # ARQ
  1650. 0    string    gW\4\1 ARQ archive data
  1651. # Squash
  1652. 3    string    OctSqu Squash archive data
  1653. # Terse
  1654. 0    string    \5\1\1\0 Terse archive data
  1655. # PUCrunch
  1656. 0    string    \x01\x08\x0b\x08\xef\x00\x9e\x32\x30\x36\x31 PUCrunch archive data
  1657. # UHarc
  1658. 0    string    UHA UHarc archive data
  1659. # ABComp
  1660. 0    string    \2AB ABComp archive data
  1661. 0    string    \3AB2 ABComp archive data
  1662. # CMP
  1663. 0    string    CO\0 CMP archive data
  1664. # Splint
  1665. 0    string    \x93\xb9\x06 Splint archive data
  1666. # InstallShield
  1667. 0    string     \x13\x5d\x65\x8c InstallShield Z archive Data
  1668. # Gather
  1669. 1    string    GTH Gather archive data
  1670. # BOA
  1671. 0    string    BOA BOA archive data
  1672. # RAX
  1673. 0    string    ULEB\xa RAX archive data
  1674. # Xtreme
  1675. 0    string    ULEB\0 Xtreme archive data
  1676. # Pack Magic
  1677. 0    string    @├ó\1\0 Pack Magic archive data
  1678. # BTS
  1679. 0    belong&0xfeffffff    0x1a034465 BTS archive data
  1680. # ELI 5750
  1681. 0    string    Ora\  ELI 5750 archive data
  1682. # QFC
  1683. 0    string    \x1aFC\x1a QFC archive data
  1684. 0    string    \x1aQF\x1a QFC archive data
  1685. # PRO-PACK
  1686. 0    string    RNC PRO-PACK archive data
  1687. # 777
  1688. 0    string    777 777 archive data
  1689. # LZS221
  1690. 0    string    sTaC LZS221 archive data
  1691. # HPA
  1692. 0    string    HPA HPA archive data
  1693. # Arhangel
  1694. 0    string    LG Arhangel archive data
  1695. # EXP1, uses bzip2
  1696. 0    string    0123456789012345BZh EXP1 archive data
  1697. # IMP
  1698. 0    string    IMP\xa IMP archive data
  1699. # NRV
  1700. 0    string    \x00\x9E\x6E\x72\x76\xFF NRV archive data
  1701. # Squish
  1702. 0    string    \x73\xb2\x90\xf4 Squish archive data
  1703. # Par
  1704. 0    string    PHILIPP Par archive data
  1705. 0    string    PAR Par archive data
  1706. # HIT
  1707. 0    string    UB HIT archive data
  1708. # SBX
  1709. 0    belong&0xfffff000    0x53423000 SBX archive data
  1710. # NaShrink
  1711. 0    string    NSK NaShrink archive data
  1712. # SAPCAR
  1713. 0    string    #\ CAR\ archive\ header SAPCAR archive data
  1714. 0    string    CAR\ 2.00RG SAPCAR archive data
  1715. # Disintegrator
  1716. 0    string    DST Disintegrator archive data
  1717. # ASD
  1718. 0    string    ASD ASD archive data
  1719. # InstallShield CAB
  1720. 0    string    ISc( InstallShield CAB
  1721. # TOP4
  1722. 0    string    T4\x1a TOP4 archive data
  1723. # BatComp left out: sig looks like COM executable
  1724. # so TODO: get real 4dos batcomp file and find sig
  1725. # BlakHole
  1726. 0    string    BH\5\7 BlakHole archive data
  1727. # BIX
  1728. 0    string    BIX0 BIX archive data
  1729. # ChiefLZA
  1730. 0    string    ChfLZ ChiefLZA archive data
  1731. # Blink
  1732. 0    string    Blink Blink archive data
  1733. # Logitech Compress
  1734. 0    string    \xda\xfa Logitech Compress archive data
  1735. # ARS-Sfx (FIXME: really a SFX? then goto COM/EXE)
  1736. 1    string    (C)\ STEPANYUK ARS-Sfx archive data
  1737. # AKT/AKT32
  1738. 0    string    AKT32 AKT32 archive data
  1739. 0    string    AKT AKT archive data
  1740. # NPack
  1741. 0    string    MSTSM NPack archive data
  1742. # PFT
  1743. 0    string    \0\x50\0\x14 PFT archive data
  1744. # SemOne
  1745. 0    string    SEM SemOne archive data
  1746. # PPMD
  1747. 0    string    \x8f\xaf\xac\x84 PPMD archive data
  1748. # FIZ
  1749. 0    string    FIZ FIZ archive data
  1750. # MSXiE
  1751. 0    belong&0xfffff0f0    0x4d530000 MSXiE archive data
  1752. # DeepFreezer
  1753. 0    belong&0xfffffff0    0x797a3030 DeepFreezer archive data
  1754. # DC
  1755. 0    string    =<DC- DC archive data
  1756. # TPac
  1757. 0    string    \4TPAC\3 TPac archive data
  1758. # Ai
  1759. 0    string    Ai\1\1\0 Ai archive data
  1760. 0    string    Ai\1\0\0 Ai archive data
  1761. # Ai32
  1762. 0    string    Ai\2\0 Ai32 archive data
  1763. 0    string    Ai\2\1 Ai32 archive data
  1764. # SBC
  1765. 0    string    SBC SBC archive data
  1766. # Ybs
  1767. 0    string    YBS Ybs archive data
  1768. # DitPack
  1769. 0    string    \x9e\0\0 DitPack archive data
  1770. # DMS
  1771. 0    string    DMS! DMS archive data
  1772. # EPC
  1773. 0    string    \x8f\xaf\xac\x8c EPC archive data
  1774. # VSARC
  1775. 0    string    VS\x1a VSARC archive data
  1776. # PDZ
  1777. 0    string    PDZ PDZ archive data
  1778. # ReDuq
  1779. 0    string    rdqx ReDuq archive data
  1780. # GCA
  1781. 0    string    GCAX GCA archive data
  1782. # PPMN
  1783. 0    string    pN PPMN archive data
  1784. # WinImage
  1785. 3    string    WINIMAGE WinImage archive data
  1786. # Compressia
  1787. 0    string    CMP0CMP Compressia archive data
  1788. # UHBC
  1789. 0    string    UHB UHBC archive data
  1790. # WinHKI
  1791. 0    string    \x61\x5C\x04\x05 WinHKI archive data
  1792. # WWPack data file
  1793. 0    string    WWP WWPack archive data
  1794. # BSN (BSA, PTS-DOS)
  1795. 0    string    \xffBSG BSN archive data
  1796. 1    string    \xffBSG BSN archive data
  1797. 3    string    \xffBSG BSN archive data
  1798. 1    string    \0\xae\2 BSN archive data
  1799. 1    string    \0\xae\3 BSN archive data
  1800. 1    string    \0\xae\7 BSN archive data
  1801. # AIN
  1802. 0    string    \x33\x18 AIN archive data
  1803. 0    string    \x33\x17 AIN archive data
  1804. # XPA32
  1805. 0    string    xpa\0\1 XPA32 archive data
  1806. # SZip (TODO: doesn't catch all versions)
  1807. 0    string    SZ\x0a\4 SZip archive data
  1808. # XPack DiskImage
  1809. 0    string    jm XPack DiskImage archive data
  1810. # XPack Data
  1811. 0    string    xpa XPack archive data
  1812. # XPack Single Data
  1813. 0    string    ├ì\ jm XPack single archive data
  1814.  
  1815. # TODO: missing due to unknown magic/magic at end of file:
  1816. #DWC
  1817. #ARG
  1818. #ZAR
  1819. #PC/3270
  1820. #InstallIt
  1821. #RKive
  1822. #RK
  1823. #XPack Diskimage
  1824.  
  1825. # These were inspired by idarc, but actually verified
  1826. # Dzip archiver (.dz)
  1827. 0    string    DZ Dzip archive data
  1828. >2    byte    x \b, version %i
  1829. >3    byte    x \b.%i
  1830. # ZZip archiver (.zz)
  1831. 0    string    ZZ\ \0\0 ZZip archive data
  1832. 0    string    ZZ0 ZZip archive data
  1833. # PAQ archiver (.paq)
  1834. 0    string    \xaa\x40\x5f\x77\x1f\xe5\x82\x0d PAQ archive data
  1835. 0    string    PAQ PAQ archive data
  1836. >3    byte&0xf0    0x30
  1837. >>3    byte    x (v%c)
  1838. # JAR archiver (.j), this is the successor to ARJ, not Java's JAR (which is essentially ZIP)
  1839. 0xe    string    \x1aJar\x1b JAR (ARJ Software, Inc.) archive data
  1840. 0    string    JARCS JAR (ARJ Software, Inc.) archive data
  1841.  
  1842. # ARJ archiver (jason@jarthur.Claremont.EDU)
  1843. 0    leshort        0xea60        ARJ archive data
  1844. !:mime    application/x-arj
  1845. >5    byte        x        \b, v%d,
  1846. >8    byte        &0x04        multi-volume,
  1847. >8    byte        &0x10        slash-switched,
  1848. >8    byte        &0x20        backup,
  1849. >34    string        x        original name: %s,
  1850. >7    byte        0        os: MS-DOS
  1851. >7    byte        1        os: PRIMOS
  1852. >7    byte        2        os: Unix
  1853. >7    byte        3        os: Amiga
  1854. >7    byte        4        os: Macintosh
  1855. >7    byte        5        os: OS/2
  1856. >7    byte        6        os: Apple ][ GS
  1857. >7    byte        7        os: Atari ST
  1858. >7    byte        8        os: NeXT
  1859. >7    byte        9        os: VAX/VMS
  1860. >3    byte        >0        %d]
  1861. # [JW] idarc says this is also possible
  1862. 2    leshort        0xea60        ARJ archive data
  1863.  
  1864. # HA archiver (Greg Roelofs, newt@uchicago.edu)
  1865. # This is a really bad format. A file containing HAWAII will match this...
  1866. #0    string        HA        HA archive data,
  1867. #>2    leshort        =1        1 file,
  1868. #>2    leshort        >1        %u files,
  1869. #>4    byte&0x0f    =0        first is type CPY
  1870. #>4    byte&0x0f    =1        first is type ASC
  1871. #>4    byte&0x0f    =2        first is type HSC
  1872. #>4    byte&0x0f    =0x0e        first is type DIR
  1873. #>4    byte&0x0f    =0x0f        first is type SPECIAL
  1874. # suggestion: at least identify small archives (<1024 files)
  1875. 0  belong&0xffff00fc 0x48410000 HA archive data
  1876. >2    leshort        =1        1 file,
  1877. >2    leshort        >1        %u files,
  1878. >4    byte&0x0f    =0        first is type CPY
  1879. >4    byte&0x0f    =1        first is type ASC
  1880. >4    byte&0x0f    =2        first is type HSC
  1881. >4    byte&0x0f    =0x0e        first is type DIR
  1882. >4    byte&0x0f    =0x0f        first is type SPECIAL
  1883.  
  1884. # HPACK archiver (Peter Gutmann, pgut1@cs.aukuni.ac.nz)
  1885. 0    string        HPAK        HPACK archive data
  1886.  
  1887. # JAM Archive volume format, by Dmitry.Kohmanyuk@UA.net
  1888. 0    string        \351,\001JAM\         JAM archive,
  1889. >7    string        >\0            version %.4s
  1890. >0x26    byte        =0x27            -
  1891. >>0x2b    string          >\0            label %.11s,
  1892. >>0x27    lelong        x            serial %08x,
  1893. >>0x36    string        >\0            fstype %.8s
  1894.  
  1895. # LHARC/LHA archiver (Greg Roelofs, newt@uchicago.edu)
  1896. 2    string        -lh0-        LHarc 1.x/ARX archive data [lh0]
  1897. !:mime    application/x-lharc
  1898. 2    string        -lh1-        LHarc 1.x/ARX archive data [lh1]
  1899. !:mime    application/x-lharc
  1900. 2    string        -lz4-        LHarc 1.x archive data [lz4]
  1901. !:mime    application/x-lharc
  1902. 2    string        -lz5-        LHarc 1.x archive data [lz5]
  1903. !:mime    application/x-lharc
  1904. #    [never seen any but the last; -lh4- reported in comp.compression:]
  1905. 2    string        -lzs-        LHa/LZS archive data [lzs]
  1906. !:mime    application/x-lha
  1907. 2    string        -lh\40-        LHa 2.x? archive data [lh ]
  1908. !:mime    application/x-lha
  1909. 2    string        -lhd-        LHa 2.x? archive data [lhd]
  1910. !:mime    application/x-lha
  1911. 2    string        -lh2-        LHa 2.x? archive data [lh2]
  1912. !:mime    application/x-lha
  1913. 2    string        -lh3-        LHa 2.x? archive data [lh3]
  1914. !:mime    application/x-lha
  1915. 2    string        -lh4-        LHa (2.x) archive data [lh4]
  1916. !:mime    application/x-lha
  1917. 2    string        -lh5-        LHa (2.x) archive data [lh5]
  1918. !:mime    application/x-lha
  1919. 2    string        -lh6-        LHa (2.x) archive data [lh6]
  1920. !:mime    application/x-lha
  1921. 2    string        -lh7-        LHa (2.x)/LHark archive data [lh7]
  1922. !:mime    application/x-lha
  1923. >20    byte        x        - header level %d
  1924. # taken from idarc [JW]
  1925. 2   string      -lZ         PUT archive data
  1926. 2   string      -lz         LZS archive data 
  1927. 2   string      -sw1-       Swag archive data
  1928.  
  1929. # RAR archiver (Greg Roelofs, newt@uchicago.edu)
  1930. 0    string        Rar!        RAR archive data,
  1931. !:mime    application/x-rar
  1932. >44    byte        x        v%0x,
  1933. >10    byte        >0        flags:
  1934. >>10    byte        &0x01        Archive volume,
  1935. >>10    byte        &0x02        Commented,
  1936. >>10    byte        &0x04        Locked,
  1937. >>10    byte        &0x08        Solid,
  1938. >>10    byte        &0x20        Authenticated,
  1939. >35    byte        0        os: MS-DOS
  1940. >35    byte        1        os: OS/2
  1941. >35    byte        2        os: Win32
  1942. >35    byte        3        os: Unix
  1943. # some old version? idarc says:
  1944. 0   string      RE\x7e\x5e  RAR archive data
  1945.  
  1946. # SQUISH archiver (Greg Roelofs, newt@uchicago.edu)
  1947. 0    string        SQSH        squished archive data (Acorn RISCOS)
  1948.  
  1949. # UC2 archiver (Greg Roelofs, newt@uchicago.edu)
  1950. # [JW] see exe section for self-extracting version
  1951. 0    string        UC2\x1a        UC2 archive data
  1952.  
  1953. # ZIP archives (Greg Roelofs, c/o zip-bugs@wkuvx1.wku.edu)
  1954. 0    string        PK\003\004
  1955. >4    byte        0x00        Zip archive data
  1956. !:mime    application/zip
  1957. >4    byte        0x09        Zip archive data, at least v0.9 to extract
  1958. !:mime    application/zip
  1959. >4    byte        0x0a        Zip archive data, at least v1.0 to extract
  1960. !:mime    application/zip
  1961. >4    byte        0x0b        Zip archive data, at least v1.1 to extract
  1962. !:mime    application/zip
  1963. >0x161    string        WINZIP          Zip archive data, WinZIP self-extracting
  1964. !:mime    application/zip
  1965. >4    byte        0x14
  1966. >>30    ubelong        !0x6d696d65    Zip archive data, at least v2.0 to extract
  1967. !:mime    application/zip
  1968.  
  1969. # OpenOffice.org / KOffice / StarOffice documents
  1970. # Listed here because they ARE zip files
  1971. #
  1972. # From: Abel Cheung <abel@oaka.org>
  1973. >4    byte        0x14
  1974. >>30    string        mimetype
  1975.  
  1976. # KOffice (1.2 or above) formats
  1977. >>>50    string    vnd.kde.        KOffice (>=1.2)
  1978. >>>>58    string    karbon            Karbon document
  1979. >>>>58    string    kchart            KChart document
  1980. >>>>58    string    kformula        KFormula document
  1981. >>>>58    string    kivio            Kivio document
  1982. >>>>58    string    kontour            Kontour document
  1983. >>>>58    string    kpresenter        KPresenter document
  1984. >>>>58    string    kspread            KSpread document
  1985. >>>>58    string    kword            KWord document
  1986.  
  1987. # OpenOffice formats (for OpenOffice 1.x / StarOffice 6/7)
  1988. >>>50    string    vnd.sun.xml.        OpenOffice.org 1.x
  1989. >>>>62    string    writer            Writer
  1990. >>>>>68    byte    !0x2e            document
  1991. >>>>>68    string    .template        template
  1992. >>>>>68    string    .global            global document
  1993. >>>>62    string    calc            Calc
  1994. >>>>>66    byte    !0x2e            spreadsheet
  1995. >>>>>66    string    .template        template
  1996. >>>>62    string    draw            Draw
  1997. >>>>>66    byte    !0x2e            document
  1998. >>>>>66    string    .template        template
  1999. >>>>62    string    impress            Impress
  2000. >>>>>69    byte    !0x2e            presentation
  2001. >>>>>69    string    .template        template
  2002. >>>>62    string    math            Math document
  2003. >>>>62    string    base            Database file
  2004.  
  2005. # OpenDocument formats (for OpenOffice 2.x / StarOffice >= 8)
  2006. # http://lists.oasis-open.org/archives/office/200505/msg00006.html
  2007. >>>50    string    vnd.oasis.opendocument.    OpenDocument
  2008. >>>>73    string    text
  2009. >>>>>77    byte    !0x2d            Text
  2010. !:mime    application/vnd.oasis.opendocument.text
  2011. >>>>>77    string    -template        Text Template
  2012. >>>>>77    string    -web            HTML Document Template
  2013. >>>>>77    string    -master            Master Document
  2014. >>>>73    string    graphics        Drawing
  2015. >>>>>81    string    -template        Template
  2016. >>>>73    string    presentation        Presentation
  2017. >>>>>85    string    -template        Template
  2018. >>>>73    string    spreadsheet        Spreadsheet
  2019. >>>>>84    string    -template        Template
  2020. >>>>73    string    chart            Chart
  2021. >>>>>78    string    -template        Template
  2022. >>>>73    string    formula            Formula
  2023. >>>>>80    string    -template        Template
  2024. >>>>73    string    database        Database
  2025. >>>>73    string    image            Image
  2026.  
  2027. # Zoo archiver
  2028. 20    lelong        0xfdc4a7dc    Zoo archive data
  2029. !:mime    application/x-zoo
  2030. >4    byte        >48        \b, v%c.
  2031. >>6    byte        >47        \b%c
  2032. >>>7    byte        >47        \b%c
  2033. >32    byte        >0        \b, modify: v%d
  2034. >>33    byte        x        \b.%d+
  2035. >42    lelong        0xfdc4a7dc    \b,
  2036. >>70    byte        >0        extract: v%d
  2037. >>>71    byte        x        \b.%d+
  2038.  
  2039. # Shell archives
  2040. 10    string        #\ This\ is\ a\ shell\ archive    shell archive text
  2041. !:mime    application/octet-stream
  2042.  
  2043. #
  2044. # LBR. NB: May conflict with the questionable 
  2045. #          "binary Computer Graphics Metafile" format.
  2046. #
  2047. 0       string  \0\ \ \ \ \ \ \ \ \ \ \ \0\0    LBR archive data
  2048. #
  2049. # PMA (CP/M derivative of LHA)
  2050. #
  2051. 2       string          -pm0-           PMarc archive data [pm0]
  2052. 2       string          -pm1-           PMarc archive data [pm1]
  2053. 2       string          -pm2-           PMarc archive data [pm2]
  2054. 2       string          -pms-           PMarc SFX archive (CP/M, DOS)
  2055. 5       string          -pc1-           PopCom compressed executable (CP/M)
  2056.  
  2057. # From Rafael Laboissiere <rafael@laboissiere.net>
  2058. # The Project Revision Control System (see
  2059. # http://prcs.sourceforge.net) generates a packaged project
  2060. # file which is recognized by the following entry: 
  2061. 0    leshort        0xeb81    PRCS packaged project
  2062.  
  2063. # Microsoft cabinets 
  2064. # by David Necas (Yeti) <yeti@physics.muni.cz>
  2065. #0    string    MSCF\0\0\0\0    Microsoft cabinet file data,
  2066. #>25    byte    x        v%d
  2067. #>24    byte    x        \b.%d
  2068. # MPi: All CABs have version 1.3, so this is pointless.
  2069. # Better magic in debian-additions.
  2070.  
  2071. # GTKtalog catalogs 
  2072. # by David Necas (Yeti) <yeti@physics.muni.cz>
  2073. 4    string    gtktalog\     GTKtalog catalog data,
  2074. >13    string    3        version 3
  2075. >>14    beshort    0x677a        (gzipped)
  2076. >>14    beshort    !0x677a        (not gzipped)
  2077. >13    string    >3        version %s
  2078.  
  2079. ############################################################################
  2080. # Parity archive reconstruction file, the 'par' file format now used on Usenet.
  2081. 0       string          PAR\0    PARity archive data
  2082. >48    leshort        =0    - Index file
  2083. >48    leshort        >0    - file number %d
  2084.  
  2085. # Felix von Leitner <felix-file@fefe.de>
  2086. 0    string    d8:announce    BitTorrent file
  2087. !:mime    application/x-bittorrent
  2088.  
  2089. # Atari MSA archive - Teemu Hukkanen <tjhukkan@iki.fi>
  2090. 0       beshort 0x0e0f          Atari MSA archive data
  2091. >2      beshort x           \b, %d sectors per track
  2092. >4      beshort 0           \b, 1 sided
  2093. >4      beshort 1           \b, 2 sided
  2094. >6      beshort x           \b, starting track: %d
  2095. >8      beshort x           \b, ending track: %d
  2096.  
  2097. # Alternate ZIP string (amc@arwen.cs.berkeley.edu)
  2098. 0    string    PK00PK\003\004    Zip archive data
  2099.  
  2100. # ACE archive (from http://www.wotsit.org/download.asp?f=ace)
  2101. # by Stefan `Sec` Zehl <sec@42.org>
  2102. 7    string        **ACE**        ACE archive data
  2103. >15    byte    >0        version %d
  2104. >16    byte    =0x00        \b, from MS-DOS
  2105. >16    byte    =0x01        \b, from OS/2
  2106. >16    byte    =0x02        \b, from Win/32
  2107. >16    byte    =0x03        \b, from Unix
  2108. >16    byte    =0x04        \b, from MacOS
  2109. >16    byte    =0x05        \b, from WinNT
  2110. >16    byte    =0x06        \b, from Primos
  2111. >16    byte    =0x07        \b, from AppleGS
  2112. >16    byte    =0x08        \b, from Atari
  2113. >16    byte    =0x09        \b, from Vax/VMS
  2114. >16    byte    =0x0A        \b, from Amiga
  2115. >16    byte    =0x0B        \b, from Next
  2116. >14    byte    x        \b, version %d to extract
  2117. >5    leshort &0x0080        \b, multiple volumes,
  2118. >>17    byte    x        \b (part %d),
  2119. >5    leshort &0x0002        \b, contains comment
  2120. >5    leshort    &0x0200        \b, sfx
  2121. >5    leshort    &0x0400        \b, small dictionary
  2122. >5    leshort    &0x0800        \b, multi-volume
  2123. >5    leshort    &0x1000        \b, contains AV-String
  2124. >>30    string    \x16*UNREGISTERED\x20VERSION*    (unregistered)
  2125. >5    leshort &0x2000        \b, with recovery record
  2126. >5    leshort &0x4000        \b, locked
  2127. >5    leshort &0x8000        \b, solid
  2128. # Date in MS-DOS format (whatever that is)
  2129. #>18    lelong    x        Created on
  2130.  
  2131. # sfArk : compression program for Soundfonts (sf2) by Dirk Jagdmann
  2132. # <doj@cubic.org>
  2133. 0x1A    string    sfArk        sfArk compressed Soundfont
  2134. >0x15    string    2
  2135. >>0x1    string    >\0        Version %s
  2136. >>0x2A    string    >\0        : %s
  2137.  
  2138. # DR-DOS 7.03 Packed File *.??_
  2139. 0    string    Packed\ File\     Personal NetWare Packed File
  2140. >12    string    x            \b, was "%.12s"
  2141.  
  2142. # EET archive
  2143. # From: Tilman Sauerbeck <tilman@code-monkey.de>
  2144. 0    belong    0x1ee7ff00    EET archive
  2145. !:mime    application/x-eet
  2146.  
  2147. # rzip archives
  2148. 0    string    RZIP        rzip compressed data
  2149. >4    byte    x        - version %d
  2150. >5    byte    x        \b.%d
  2151. >6    belong    x        (%d bytes)
  2152.  
  2153. # From: "Robert Dale" <robdale@gmail.com>
  2154. 0    belong    123        dar archive,
  2155. >4    belong    x        label "%.8x
  2156. >>8    belong    x        %.8x
  2157. >>>12    beshort    x        %.4x"
  2158. >14    byte    0x54        end slice
  2159. >14    beshort    0x4e4e        multi-part
  2160. >14    beshort    0x4e53        multi-part, with -S
  2161.  
  2162. # Symbian installation files
  2163. #  http://www.thouky.co.uk/software/psifs/sis.html
  2164. #  http://developer.symbian.com/main/downloads/papers/SymbianOSv91/softwareinstallsis.pdf
  2165. 8    lelong    0x10000419    Symbian installation file
  2166. !:mime    application/vnd.symbian.install
  2167. >4    lelong    0x1000006D    (EPOC release 3/4/5)
  2168. >4    lelong    0x10003A12    (EPOC release 6)
  2169. 0    lelong    0x10201A7A    Symbian installation file (Symbian OS 9.x)
  2170. !:mime    x-epoc/x-sisx-app
  2171.  
  2172. # From "Nelson A. de Oliveira" <naoliv@gmail.com>
  2173. 0    string    MPQ\032        MoPaQ (MPQ) archive
  2174.  
  2175. # From: Dirk Jagdmann <doj@cubic.org>
  2176. # xar archive format: http://code.google.com/p/xar/
  2177. 0    string    xar!        xar archive
  2178. >6    beshort    x        - version %ld
  2179.  
  2180. # From: "Nelson A. de Oliveira" <naoliv@gmail.com>
  2181. # .kgb
  2182. 0    string KGB_arch        KGB Archiver file
  2183. >10    string x        with compression level %.1s
  2184.  
  2185. # xar (eXtensible ARchiver) archive
  2186. # From: "David Remahl" <dremahl@apple.com>
  2187. 0    string    xar!        xar archive
  2188. #>4    beshort    x        header size %d
  2189. >6    beshort    x        version %d,
  2190. #>8    quad    x        compressed TOC: %d,
  2191. #>16    quad    x        uncompressed TOC: %d,
  2192. >24    belong    0        no checksum
  2193. >24    belong    1        SHA-1 checksum
  2194. >24    belong    2        MD5 checksum
  2195.  
  2196. # Type: Parity Archive
  2197. # From: Daniel van Eeden <daniel_e@dds.nl>
  2198. 0    string     PAR2        Parity Archive Volume Set
  2199.  
  2200. #------------------------------------------------------------------------------
  2201. # asterix:  file(1) magic for Aster*x; SunOS 5.5.1 gave the 4-character
  2202. # strings as "long" - we assume they're just strings:
  2203. # From: guy@netapp.com (Guy Harris)
  2204. #
  2205. 0    string        *STA        Aster*x
  2206. >7    string        WORD            Words Document
  2207. >7    string        GRAP            Graphic
  2208. >7    string        SPRE            Spreadsheet
  2209. >7    string        MACR            Macro
  2210. 0    string        2278        Aster*x Version 2
  2211. >29    byte        0x36            Words Document
  2212. >29    byte        0x35            Graphic
  2213. >29    byte        0x32            Spreadsheet
  2214. >29    byte        0x38            Macro
  2215.  
  2216.  
  2217. #------------------------------------------------------------------------------
  2218. # att3b:  file(1) magic for AT&T 3B machines
  2219. #
  2220. # The `versions' should be un-commented if they work for you.
  2221. # (Was the problem just one of endianness?)
  2222. #
  2223. # 3B20
  2224. #
  2225. # The 3B20 conflicts with SCCS.
  2226. #0    beshort        0550        3b20 COFF executable
  2227. #>12    belong        >0        not stripped
  2228. #>22    beshort        >0        - version %ld
  2229. #0    beshort        0551        3b20 COFF executable (TV)
  2230. #>12    belong        >0        not stripped
  2231. #>22    beshort        >0        - version %ld
  2232. #
  2233. # WE32K
  2234. #
  2235. 0    beshort        0560        WE32000 COFF
  2236. >18    beshort        ^00000020    object
  2237. >18    beshort        &00000020    executable
  2238. >12    belong        >0        not stripped
  2239. >18    beshort        ^00010000    N/A on 3b2/300 w/paging
  2240. >18    beshort        &00020000    32100 required
  2241. >18    beshort        &00040000    and MAU hardware required
  2242. >20    beshort        0407        (impure)
  2243. >20    beshort        0410        (pure)
  2244. >20    beshort        0413        (demand paged)
  2245. >20    beshort        0443        (target shared library)
  2246. >22    beshort        >0        - version %ld
  2247. 0    beshort        0561        WE32000 COFF executable (TV)
  2248. >12    belong        >0        not stripped
  2249. #>18    beshort        &00020000    - 32100 required
  2250. #>18    beshort        &00040000    and MAU hardware required
  2251. #>22    beshort        >0        - version %ld
  2252. #
  2253. # core file for 3b2 
  2254. 0    string        \000\004\036\212\200    3b2 core file
  2255. >364    string        >\0        of '%s'
  2256. #------------------------------------------------------------------------------
  2257. # audio:  file(1) magic for sound formats (see also "iff")
  2258. #
  2259. # Jan Nicolai Langfeldt (janl@ifi.uio.no), Dan Quinlan (quinlan@yggdrasil.com),
  2260. # and others
  2261. #
  2262.  
  2263. # Sun/NeXT audio data
  2264. 0    string        .snd        Sun/NeXT audio data:
  2265. >12    belong        1        8-bit ISDN mu-law,
  2266. !:mime    audio/basic
  2267. >12    belong        2        8-bit linear PCM [REF-PCM],
  2268. !:mime    audio/basic
  2269. >12    belong        3        16-bit linear PCM,
  2270. !:mime    audio/basic
  2271. >12    belong        4        24-bit linear PCM,
  2272. !:mime    audio/basic
  2273. >12    belong        5        32-bit linear PCM,
  2274. !:mime    audio/basic
  2275. >12    belong        6        32-bit IEEE floating point,
  2276. !:mime    audio/basic
  2277. >12    belong        7        64-bit IEEE floating point,
  2278. !:mime    audio/basic
  2279. >12    belong        8        Fragmented sample data,
  2280. >12    belong        10        DSP program,
  2281. >12    belong        11        8-bit fixed point,
  2282. >12    belong        12        16-bit fixed point,
  2283. >12    belong        13        24-bit fixed point,
  2284. >12    belong        14        32-bit fixed point,
  2285. >12    belong        18        16-bit linear with emphasis,
  2286. >12    belong        19        16-bit linear compressed,
  2287. >12    belong        20        16-bit linear with emphasis and compression,
  2288. >12    belong        21        Music kit DSP commands,
  2289. >12    belong        23        8-bit ISDN mu-law compressed (CCITT G.721 ADPCM voice enc.),
  2290. !:mime  audio/x-adpcm
  2291. >12    belong        24        compressed (8-bit CCITT G.722 ADPCM)
  2292. >12    belong        25        compressed (3-bit CCITT G.723.3 ADPCM),
  2293. >12    belong        26        compressed (5-bit CCITT G.723.5 ADPCM),
  2294. >12    belong        27        8-bit A-law (CCITT G.711),
  2295. >20    belong        1        mono,
  2296. >20    belong        2        stereo,
  2297. >20    belong        4        quad,
  2298. >16    belong        >0        %d Hz
  2299.  
  2300. # DEC systems (e.g. DECstation 5000) use a variant of the Sun/NeXT format
  2301. # that uses little-endian encoding and has a different magic number
  2302. 0    lelong        0x0064732E    DEC audio data:
  2303. >12    lelong        1        8-bit ISDN mu-law,
  2304. !:mime    audio/x-dec-basic
  2305. >12    lelong        2        8-bit linear PCM [REF-PCM],
  2306. !:mime    audio/x-dec-basic
  2307. >12    lelong        3        16-bit linear PCM,
  2308. !:mime    audio/x-dec-basic
  2309. >12    lelong        4        24-bit linear PCM,
  2310. !:mime    audio/x-dec-basic
  2311. >12    lelong        5        32-bit linear PCM,
  2312. !:mime    audio/x-dec-basic
  2313. >12    lelong        6        32-bit IEEE floating point,
  2314. !:mime    audio/x-dec-basic
  2315. >12    lelong        7        64-bit IEEE floating point,
  2316. !:mime    audio/x-dec-basic
  2317. >12    belong        8        Fragmented sample data,
  2318. >12    belong        10        DSP program,
  2319. >12    belong        11        8-bit fixed point,
  2320. >12    belong        12        16-bit fixed point,
  2321. >12    belong        13        24-bit fixed point,
  2322. >12    belong        14        32-bit fixed point,
  2323. >12    belong        18        16-bit linear with emphasis,
  2324. >12    belong        19        16-bit linear compressed,
  2325. >12    belong        20        16-bit linear with emphasis and compression,
  2326. >12    belong        21        Music kit DSP commands,
  2327. >12    lelong        23        8-bit ISDN mu-law compressed (CCITT G.721 ADPCM voice enc.),
  2328. !:mime    audio/x-dec-basic
  2329. >12    belong        24        compressed (8-bit CCITT G.722 ADPCM)
  2330. >12    belong        25        compressed (3-bit CCITT G.723.3 ADPCM),
  2331. >12    belong        26        compressed (5-bit CCITT G.723.5 ADPCM),
  2332. >12    belong        27        8-bit A-law (CCITT G.711),
  2333. >20    lelong        1        mono,
  2334. >20    lelong        2        stereo,
  2335. >20    lelong        4        quad,
  2336. >16    lelong        >0        %d Hz
  2337.  
  2338. # Creative Labs AUDIO stuff
  2339. 0    string    MThd            Standard MIDI data
  2340. !:mime    audio/midi
  2341. >8     beshort    x            (format %d)
  2342. >10    beshort    x            using %d track
  2343. >10    beshort        >1        \bs
  2344. >12    beshort&0x7fff    x        at 1/%d
  2345. >12    beshort&0x8000    >0        SMPTE
  2346.  
  2347. 0    string    CTMF            Creative Music (CMF) data
  2348. !:mime    audio/x-unknown
  2349. 0    string    SBI            SoundBlaster instrument data
  2350. !:mime    audio/x-unknown
  2351. 0    string    Creative\ Voice\ File    Creative Labs voice data
  2352. !:mime    audio/x-unknown
  2353. # is this next line right?  it came this way...
  2354. >19    byte    0x1A
  2355. >23    byte    >0            - version %d
  2356. >22    byte    >0            \b.%d
  2357.  
  2358. # first entry is also the string "NTRK"
  2359. 0    belong        0x4e54524b    MultiTrack sound data
  2360. >4    belong        x        - version %ld
  2361.  
  2362. # Extended MOD format (*.emd) (Greg Roelofs, newt@uchicago.edu); NOT TESTED
  2363. # [based on posting 940824 by "Dirk/Elastik", husberg@lehtori.cc.tut.fi]
  2364. 0    string        EMOD        Extended MOD sound data,
  2365. >4    byte&0xf0    x        version %d
  2366. >4    byte&0x0f    x        \b.%d,
  2367. >45    byte        x        %d instruments
  2368. >83    byte        0        (module)
  2369. >83    byte        1        (song)
  2370.  
  2371. # Real Audio (Magic .ra\0375)
  2372. 0    belong        0x2e7261fd    RealAudio sound file
  2373. !:mime    audio/x-pn-realaudio
  2374. 0    string        .RMF\0\0\0    RealMedia file
  2375. !:mime    application/vnd.rn-realmedia
  2376. #video/x-pn-realvideo
  2377. #video/vnd.rn-realvideo
  2378. #application/vnd.rn-realmedia
  2379. #    sigh, there are many mimes for that but the above are the most common.
  2380.  
  2381. # MTM/669/FAR/S3M/ULT/XM format checking [Aaron Eppert, aeppert@dialin.ind.net]
  2382. # Oct 31, 1995
  2383. # fixed by <doj@cubic.org> 2003-06-24
  2384. # Too short...
  2385. #0    string        MTM        MultiTracker Module sound file
  2386. #0    string        if        Composer 669 Module sound data
  2387. #0    string        JN        Composer 669 Module sound data (extended format)
  2388. 0    string        MAS_U        ULT(imate) Module sound data
  2389.  
  2390. #0    string        FAR        Module sound data
  2391. #>4    string        >\15        Title: "%s"
  2392.  
  2393. 0x2c    string        SCRM        ScreamTracker III Module sound data
  2394. >0    string        >\0        Title: "%s"
  2395.  
  2396. # Gravis UltraSound patches
  2397. # From <ache@nagual.ru>
  2398.  
  2399. 0    string        GF1PATCH110\0ID#000002\0    GUS patch
  2400. 0    string        GF1PATCH100\0ID#000002\0    Old GUS    patch
  2401.  
  2402. # mime types according to http://www.geocities.com/nevilo/mod.htm:
  2403. #    audio/it    .it
  2404. #    audio/x-zipped-it    .itz
  2405. #    audio/xm    fasttracker modules
  2406. #    audio/x-s3m    screamtracker modules
  2407. #    audio/s3m    screamtracker modules
  2408. #    audio/x-zipped-mod    mdz
  2409. #    audio/mod    mod
  2410. #    audio/x-mod    All modules (mod, s3m, 669, mtm, med, xm, it, mdz, stm, itz, xmz, s3z)
  2411.  
  2412. #
  2413. # Taken from loader code from mikmod version 2.14
  2414. # by Steve McIntyre (stevem@chiark.greenend.org.uk)
  2415. # <doj@cubic.org> added title printing on 2003-06-24
  2416. 0    string    MAS_UTrack_V00
  2417. >14    string    >/0        ultratracker V1.%.1s module sound data
  2418. !:mime    audio/x-mod
  2419. #audio/x-tracker-module
  2420.  
  2421. 0    string    UN05        MikMod UNI format module sound data
  2422.  
  2423. 0    string    Extended\ Module: Fasttracker II module sound data
  2424. !:mime    audio/x-mod
  2425. #audio/x-tracker-module
  2426. >17    string    >\0        Title: "%s"
  2427.  
  2428. 21    string/c    =!SCREAM!    Screamtracker 2 module sound data
  2429. !:mime    audio/x-mod
  2430. #audio/x-screamtracker-module
  2431. 21    string    BMOD2STM    Screamtracker 2 module sound data
  2432. !:mime    audio/x-mod
  2433. #audio/x-screamtracker-module
  2434. 1080    string    M.K.        4-channel Protracker module sound data
  2435. !:mime    audio/x-mod
  2436. #audio/x-protracker-module
  2437. >0    string    >\0        Title: "%s"
  2438. 1080    string    M!K!        4-channel Protracker module sound data
  2439. !:mime    audio/x-mod
  2440. #audio/x-protracker-module
  2441. >0    string    >\0        Title: "%s"
  2442. 1080    string    FLT4        4-channel Startracker module sound data
  2443. !:mime    audio/x-mod
  2444. #audio/x-startracker-module
  2445. >0    string    >\0        Title: "%s"
  2446. 1080    string    FLT8        8-channel Startracker module sound data
  2447. !:mime    audio/x-mod
  2448. #audio/x-startracker-module
  2449. >0    string    >\0        Title: "%s"
  2450. 1080    string    4CHN        4-channel Fasttracker module sound data
  2451. !:mime    audio/x-mod
  2452. #audio/x-fasttracker-module
  2453. >0    string    >\0        Title: "%s"
  2454. 1080    string    6CHN        6-channel Fasttracker module sound data
  2455. !:mime    audio/x-mod
  2456. #audio/x-fasttracker-module
  2457. >0    string    >\0        Title: "%s"
  2458. 1080    string    8CHN        8-channel Fasttracker module sound data
  2459. !:mime    audio/x-mod
  2460. #audio/x-fasttracker-module
  2461. >0    string    >\0        Title: "%s"
  2462. 1080    string    CD81        8-channel Octalyser module sound data
  2463. !:mime    audio/x-mod
  2464. #audio/x-octalysertracker-module
  2465. >0    string    >\0        Title: "%s"
  2466. 1080    string    OKTA        8-channel Octalyzer module sound data
  2467. !:mime    audio/x-mod
  2468. #audio/x-octalysertracker-module
  2469. >0    string    >\0        Title: "%s"
  2470. # Not good enough.
  2471. #1082    string    CH
  2472. #>1080    string    >/0        %.2s-channel Fasttracker "oktalyzer" module sound data
  2473. 1080    string    16CN        16-channel Taketracker module sound data
  2474. !:mime    audio/x-mod
  2475. #audio/x-taketracker-module
  2476. >0    string    >\0        Title: "%s"
  2477. 1080    string    32CN        32-channel Taketracker module sound data
  2478. !:mime    audio/x-mod
  2479. #audio/x-taketracker-module
  2480. >0    string    >\0        Title: "%s"
  2481.  
  2482. # TOC sound files -Trevor Johnson <trevor@jpj.net>
  2483. #
  2484. 0       string          TOC             TOC sound file
  2485.  
  2486. # sidfiles <pooka@iki.fi>
  2487. # added name,author,(c) and new RSID type by <doj@cubic.org> 2003-06-24
  2488. 0    string        SIDPLAY\ INFOFILE    Sidplay info file
  2489.  
  2490. 0    string        PSID            PlaySID v2.2+ (AMIGA) sidtune
  2491. >4    beshort        >0            w/ header v%d,
  2492. >14    beshort        =1            single song,
  2493. >14    beshort        >1            %d songs,
  2494. >16    beshort        >0            default song: %d
  2495. >0x16    string        >\0            name: "%s"
  2496. >0x36    string        >\0            author: "%s"
  2497. >0x56    string        >\0            copyright: "%s"
  2498.  
  2499. 0    string        RSID            RSID sidtune PlaySID compatible
  2500. >4    beshort        >0            w/ header v%d,
  2501. >14    beshort        =1            single song,
  2502. >14    beshort        >1            %d songs,
  2503. >16    beshort        >0            default song: %d
  2504. >0x16    string        >\0            name: "%s"
  2505. >0x36    string        >\0            author: "%s"
  2506. >0x56    string        >\0            copyright: "%s"
  2507.  
  2508. # IRCAM <mpruett@sgi.com>
  2509. # VAX and MIPS files are little-endian; Sun and NeXT are big-endian
  2510. 0    belong        0x64a30100        IRCAM file (VAX)
  2511. 0    belong        0x64a30200        IRCAM file (Sun)
  2512. 0    belong        0x64a30300        IRCAM file (MIPS little-endian)
  2513. 0    belong        0x64a30400        IRCAM file (NeXT)
  2514.  
  2515. # NIST SPHERE <mpruett@sgi.com>
  2516. 0    string        NIST_1A\n\ \ \ 1024\n    NIST SPHERE file
  2517.  
  2518. # Sample Vision <mpruett@sgi.com>
  2519. 0    string        SOUND\ SAMPLE\ DATA\     Sample Vision file
  2520.  
  2521. # Audio Visual Research <tonigonenstein@users.sourceforge.net>
  2522. 0    string        2BIT            Audio Visual Research file,
  2523. >12    beshort        =0            mono,
  2524. >12    beshort        =-1            stereo,
  2525. >14    beshort        x            %d bits
  2526. >16    beshort        =0            unsigned,
  2527. >16    beshort        =-1            signed,
  2528. >22    belong&0x00ffffff    x        %d Hz,
  2529. >18    beshort        =0            no loop,
  2530. >18    beshort        =-1            loop,
  2531. >21    ubyte        <128            note %d,
  2532. >22    byte        =0            replay 5.485 KHz
  2533. >22    byte        =1            replay 8.084 KHz
  2534. >22    byte        =2            replay 10.971 Khz
  2535. >22    byte        =3            replay 16.168 Khz
  2536. >22    byte        =4            replay 21.942 KHz
  2537. >22    byte        =5            replay 32.336 KHz
  2538. >22    byte        =6            replay 43.885 KHz
  2539. >22    byte        =7            replay 47.261 KHz
  2540.  
  2541. # SGI SoundTrack <mpruett@sgi.com>
  2542. 0    string        _SGI_SoundTrack        SGI SoundTrack project file
  2543. # ID3 version 2 tags <waschk@informatik.uni-rostock.de>
  2544. 0    string        ID3    Audio file with ID3 version 2
  2545. >3    byte        x    \b.%d
  2546. >4    byte        x    \b.%d
  2547. >>5    byte        &0x80    \b, unsynchronized frames
  2548. >>5    byte        &0x40    \b, extended header
  2549. >>5    byte        &0x20    \b, experimental
  2550. >>5    byte        &0x10    \b, footer present
  2551. >(6.I)    indirect    x    \b, contains: 
  2552.  
  2553. # NSF (NES sound file) magic
  2554. 0    string        NESM\x1a    NES Sound File
  2555. >14    string        >\0        ("%s" by
  2556. >46    string        >\0        %s, copyright
  2557. >78    string        >\0        %s),
  2558. >5    byte        x        version %d,
  2559. >6    byte        x        %d tracks,
  2560. >122    byte&0x2    =1        dual PAL/NTSC
  2561. >122    byte&0x1    =1        PAL
  2562. >122    byte&0x1    =0        NTSC
  2563.  
  2564. # Type: SNES SPC700 sound files
  2565. # From: Josh Triplett <josh@freedesktop.org>
  2566. 0    string    SNES-SPC700\ Sound\ File\ Data\ v    SNES SPC700 sound file
  2567. >&0    string    0.30                    \b, version %s
  2568. >>0x23    byte    0x1B                    \b, without ID666 tag
  2569. >>0x23    byte    0x1A                    \b, with ID666 tag
  2570. >>>0x2E    string    >\0                    \b, song "%.32s"
  2571. >>>0x4E    string    >\0                    \b, game "%.32s"
  2572.  
  2573. # Impulse tracker module (audio/x-it)
  2574. 0    string        IMPM        Impulse Tracker module sound data -
  2575. !:mime    audio/x-mod
  2576. >4    string        >\0        "%s"
  2577. >40    leshort        !0        compatible w/ITv%x
  2578. >42    leshort        !0        created w/ITv%x
  2579.  
  2580. # Imago Orpheus module (audio/x-imf)
  2581. 60    string        IM10        Imago Orpheus module sound data -
  2582. >0    string        >\0        "%s"
  2583.  
  2584. # From <collver1@attbi.com>
  2585. # These are the /etc/magic entries to decode modules, instruments, and
  2586. # samples in Impulse Tracker's native format.
  2587.  
  2588. 0    string        IMPS        Impulse Tracker Sample
  2589. >18    byte        &2        16 bit
  2590. >18    byte        ^2        8 bit
  2591. >18    byte        &4        stereo
  2592. >18    byte        ^4        mono
  2593. 0    string        IMPI        Impulse Tracker Instrument
  2594. >28    leshort        !0        ITv%x
  2595. >30    byte        !0        %d samples
  2596.  
  2597. # Yamaha TX Wave:  file(1) magic for Yamaha TX Wave audio files
  2598. # From <collver1@attbi.com>
  2599. 0    string        LM8953        Yamaha TX Wave
  2600. >22    byte        0x49        looped
  2601. >22    byte        0xC9        non-looped
  2602. >23    byte        1        33kHz
  2603. >23    byte        2        50kHz
  2604. >23    byte        3        16kHz
  2605.  
  2606. # scream tracker:  file(1) magic for Scream Tracker sample files
  2607. #
  2608. # From <collver1@attbi.com>
  2609. 76    string        SCRS        Scream Tracker Sample
  2610. >0    byte        1        sample
  2611. >0    byte        2        adlib melody
  2612. >0    byte        >2        adlib drum
  2613. >31    byte        &2        stereo
  2614. >31    byte        ^2        mono
  2615. >31    byte        &4        16bit little endian
  2616. >31    byte        ^4        8bit
  2617. >30    byte        0        unpacked
  2618. >30    byte        1        packed
  2619.  
  2620. # audio
  2621. # From: Cory Dikkers <cdikkers@swbell.net>
  2622. 0    string        MMD0        MED music file, version 0
  2623. 0    string        MMD1        OctaMED Pro music file, version 1
  2624. 0    string        MMD3        OctaMED Soundstudio music file, version 3
  2625. 0    string        OctaMEDCmpr    OctaMED Soundstudio compressed file
  2626. 0    string        MED        MED_Song
  2627. 0    string        SymM        Symphonie SymMOD music file
  2628. #
  2629. 0    string        THX        AHX version
  2630. >3    byte        =0        1 module data
  2631. >3    byte        =1        2 module data
  2632. #
  2633. 0    string        OKTASONG    Oktalyzer module data
  2634. #
  2635. 0    string        DIGI\ Booster\ module\0    %s
  2636. >20    byte        >0        %c
  2637. >>21    byte        >0        \b%c
  2638. >>>22    byte        >0        \b%c
  2639. >>>>23    byte        >0        \b%c
  2640. >610    string        >\0        \b, "%s"
  2641. #
  2642. 0    string        DBM0           DIGI Booster Pro Module
  2643. >4    byte        >0        V%X.
  2644. >>5    byte        x        \b%02X
  2645. >16    string        >\0        \b, "%s"
  2646. #
  2647. 0    string        FTMN        FaceTheMusic module
  2648. >16    string        >\0d        \b, "%s"
  2649.  
  2650. # From: <doj@cubic.org> 2003-06-24
  2651. 0    string        AMShdr\32    Velvet Studio AMS Module v2.2
  2652. 0    string        Extreme        Extreme Tracker AMS Module v1.3
  2653. 0    string        DDMF        Xtracker DMF Module
  2654. >4    byte        x        v%i
  2655. >0xD    string        >\0        Title: "%s"
  2656. >0x2B    string        >\0        Composer: "%s"
  2657. 0    string        DSM\32        Dynamic Studio Module DSM
  2658. 0    string        SONG        DigiTrekker DTM Module
  2659. 0    string        DMDL        DigiTrakker MDL Module
  2660. 0    string        PSM\32        Protracker Studio PSM Module
  2661. 44    string        PTMF        Poly Tracker PTM Module
  2662. >0    string        >\32        Title: "%s"
  2663. 0    string        MT20        MadTracker 2.0 Module MT2
  2664. 0    string        RAD\40by\40REALiTY!! RAD Adlib Tracker Module RAD
  2665. 0    string        RTMM        RTM Module
  2666. 0x426    string        MaDoKaN96    XMS Adlib Module
  2667. >0    string        >\0        Composer: "%s"
  2668. 0    string        AMF        AMF Module
  2669. >4    string        >\0        Title: "%s"
  2670. 0    string        MODINFO1    Open Cubic Player Module Inforation MDZ
  2671. 0    string        Extended\40Instrument: Fast Tracker II Instrument
  2672.  
  2673. # From: Takeshi Hamasaki <hma@syd.odn.ne.jp>
  2674. # NOA Nancy Codec file
  2675. 0    string        \210NOA\015\012\032    NOA Nancy Codec Movie file
  2676. # Yamaha SMAF format
  2677. 0    string        MMMD        Yamaha SMAF file
  2678. # Sharp Jisaku Melody format for PDC
  2679. 0    string        \001Sharp\040JisakuMelody    SHARP Cell-Phone ringing Melody
  2680. >20    string        Ver01.00    Ver. 1.00
  2681. >>32    byte        x        , %d tracks
  2682.  
  2683. # Free lossless audio codec <http://flac.sourceforge.net>
  2684. # From: Przemyslaw Augustyniak <silvathraec@rpg.pl>
  2685. 0    string            fLaC        FLAC audio bitstream data
  2686. !:mime    audio/x-flac
  2687. >4    byte&0x7f        >0        \b, unknown version
  2688. >4    byte&0x7f        0        \b
  2689. # some common bits/sample values
  2690. >>20    beshort&0x1f0        0x030        \b, 4 bit
  2691. >>20    beshort&0x1f0        0x050        \b, 6 bit
  2692. >>20    beshort&0x1f0        0x070        \b, 8 bit
  2693. >>20    beshort&0x1f0        0x0b0        \b, 12 bit
  2694. >>20    beshort&0x1f0        0x0f0        \b, 16 bit
  2695. >>20    beshort&0x1f0        0x170        \b, 24 bit
  2696. >>20    byte&0xe        0x0        \b, mono
  2697. >>20    byte&0xe        0x2        \b, stereo
  2698. >>20    byte&0xe        0x4        \b, 3 channels
  2699. >>20    byte&0xe        0x6        \b, 4 channels
  2700. >>20    byte&0xe        0x8        \b, 5 channels
  2701. >>20    byte&0xe        0xa        \b, 6 channels
  2702. >>20    byte&0xe        0xc        \b, 7 channels
  2703. >>20    byte&0xe        0xe        \b, 8 channels
  2704. # some common sample rates
  2705. >>17    belong&0xfffff0        0x0ac440    \b, 44.1 kHz
  2706. >>17    belong&0xfffff0        0x0bb800    \b, 48 kHz
  2707. >>17    belong&0xfffff0        0x07d000    \b, 32 kHz
  2708. >>17    belong&0xfffff0        0x056220    \b, 22.05 kHz
  2709. >>17    belong&0xfffff0        0x05dc00    \b, 24 kHz
  2710. >>17    belong&0xfffff0        0x03e800    \b, 16 kHz
  2711. >>17    belong&0xfffff0        0x02b110    \b, 11.025 kHz
  2712. >>17    belong&0xfffff0        0x02ee00    \b, 12 kHz
  2713. >>17    belong&0xfffff0        0x01f400    \b, 8 kHz
  2714. >>17    belong&0xfffff0        0x177000    \b, 96 kHz
  2715. >>17    belong&0xfffff0        0x0fa000    \b, 64 kHz
  2716. >>21    byte&0xf        >0        \b, >4G samples
  2717. >>21    byte&0xf        0        \b
  2718. >>>22    belong            >0        \b, %u samples
  2719. >>>22    belong            0        \b, length unknown
  2720.  
  2721. # (ISDN) VBOX voice message file (Wolfram Kleff)
  2722. 0       string          VBOX            VBOX voice message data
  2723.  
  2724. # ReBorn Song Files (.rbs)
  2725. # David J. Singer <doc@deadvirgins.org.uk>
  2726. 8       string          RB40             RBS Song file
  2727. >29     string          ReBorn           created by ReBorn
  2728. >37     string          Propellerhead    created by ReBirth
  2729.  
  2730. # Synthesizer Generator and Kimwitu share their file format
  2731. 0    string        A#S#C#S#S#L#V#3        Synthesizer Generator or Kimwitu data
  2732. # Kimwitu++ uses a slightly different magic
  2733. 0    string        A#S#C#S#S#L#HUB        Kimwitu++ data
  2734.  
  2735. # From "Simon Hosie
  2736. 0       string  TFMX-SONG       TFMX module sound data
  2737.  
  2738. # Monkey's Audio compressed audio format (.ape)
  2739. # From danny.milo@gmx.net (Danny Milosavljevic)
  2740. # New version from Abel Cheung <abel (@) oaka.org>
  2741. 0        string        MAC\040        Monkey's Audio compressed format
  2742. >4        uleshort    >0x0F8B        version %d
  2743. >>(0x08.l)    uleshort    =1000        with fast compression
  2744. >>(0x08.l)    uleshort    =2000        with normal compression
  2745. >>(0x08.l)    uleshort    =3000        with high compression
  2746. >>(0x08.l)    uleshort    =4000        with extra high compression
  2747. >>(0x08.l)    uleshort    =5000        with insane compression
  2748. >>(0x08.l+18)    uleshort    =1        \b, mono
  2749. >>(0x08.l+18)    uleshort    =2        \b, stereo
  2750. >>(0x08.l+20)    ulelong        x        \b, sample rate %d
  2751. >4        uleshort    <0x0F8C        version %d
  2752. >>6        uleshort    =1000        with fast compression
  2753. >>6        uleshort    =2000        with normal compression
  2754. >>6        uleshort    =3000        with high compression
  2755. >>6        uleshort    =4000        with extra high compression
  2756. >>6        uleshort    =5000        with insane compression
  2757. >>10        uleshort    =1        \b, mono
  2758. >>10        uleshort    =2        \b, stereo
  2759. >>12        ulelong        x        \b, sample rate %d
  2760.  
  2761. # adlib sound files
  2762. # From G├╝rkan Seng├╝n <gurkan@linuks.mine.nu>, http://www.linuks.mine.nu
  2763. 0        string        RAWADATA    RdosPlay RAW
  2764.  
  2765. 1068    string        RoR        AMUSIC Adlib Tracker
  2766.  
  2767. 0    string        JCH        EdLib
  2768.  
  2769. 0    string        mpu401tr    MPU-401 Trakker
  2770.  
  2771. 0    string        SAdT        Surprise! Adlib Tracker
  2772. >4    byte        x        Version %d
  2773.  
  2774. 0    string        XAD!        eXotic ADlib
  2775.  
  2776. 0    string        ofTAZ!        eXtra Simple Music
  2777.  
  2778. # Spectrum 128 tunes (.ay files).
  2779. # From: Emanuel Haupt <ehaupt@critical.ch>
  2780. 0    string        ZXAYEMUL    Spectrum 128 tune
  2781.  
  2782. 0    string        \0BONK        BONK,
  2783. #>5    byte        x        version %d
  2784. >14    byte        x        %d channel(s),
  2785. >15    byte        =1        lossless,
  2786. >15    byte        =0        lossy,
  2787. >16    byte        x        mid-side
  2788.  
  2789. 384    string        LockStream    LockStream Embedded file (mostly MP3 on old Nokia phones)
  2790.  
  2791. # format VQF (proprietary codec for sound)
  2792. # some infos on the header file available at :
  2793. # http://www.twinvq.org/english/technology_format.html
  2794. 0    string        TWIN97012000    VQF data
  2795. >27    short        0        \b, Mono
  2796. >27    short        1        \b, Stereo
  2797. >31    short         >0        \b, %d kbit/s
  2798. >35    short         >0        \b, %d kHz
  2799.  
  2800. # Nelson A. de Oliveira (naoliv@gmail.com)
  2801. # .eqf
  2802. 0    string    Winamp\ EQ\ library\ file    %s
  2803. # it will match only versions like v<digit>.<digit>
  2804. # Since I saw only eqf files with version v1.1 I think that it's OK
  2805. >23    string    x    \b%.4s
  2806. # .preset
  2807. 0    string    [Equalizer\ preset]    XMMS equalizer preset
  2808. # .m3u
  2809. 0    search/1    #EXTM3U     M3U playlist text
  2810. # .pls
  2811. 0    search/1    [playlist]    PLS playlist text
  2812. # licq.conf
  2813. 1    string    [licq]            LICQ configuration file
  2814.  
  2815. # Atari ST audio files by Dirk Jagdmann <doj@cubic.org>
  2816. 0    string        ICE!        SNDH Atari ST music
  2817. 0    string        SC68\ Music-file\ /\ (c)\ (BeN)jami    sc68 Atari ST music
  2818.  
  2819. # musepak support From: "Jiri Pejchal" <jiri.pejchal@gmail.com>
  2820. 0       string          MP+     Musepack audio
  2821. >3      byte            255     \b, SV pre8
  2822. >3      byte&0xF        0x6     \b, SV 6
  2823. >3      byte&0xF        0x8     \b, SV 8
  2824. >3      byte&0xF        0x7     \b, SV 7
  2825. >>3     byte&0xF0       0x0     \b.0
  2826. >>3     byte&0xF0       0x10    \b.1
  2827. >>3     byte&0xF0       240     \b.15
  2828. >>10    byte&0xF0       0x0     \b, no profile
  2829. >>10    byte&0xF0       0x10    \b, profile 'Unstable/Experimental'
  2830. >>10    byte&0xF0       0x50    \b, quality 0
  2831. >>10    byte&0xF0       0x60    \b, quality 1
  2832. >>10    byte&0xF0       0x70    \b, quality 2 (Telephone)
  2833. >>10    byte&0xF0       0x80    \b, quality 3 (Thumb)
  2834. >>10    byte&0xF0       0x90    \b, quality 4 (Radio)
  2835. >>10    byte&0xF0       0xA0    \b, quality 5 (Standard)
  2836. >>10    byte&0xF0       0xB0    \b, quality 6 (Xtreme)
  2837. >>10    byte&0xF0       0xC0    \b, quality 7 (Insane)
  2838. >>10    byte&0xF0       0xD0    \b, quality 8 (BrainDead)
  2839. >>10    byte&0xF0       0xE0    \b, quality 9
  2840. >>10    byte&0xF0       0xF0    \b, quality 10
  2841. >>27    byte            0x0     \b, Buschmann 1.7.0-9, Klemm 0.90-1.05
  2842. >>27    byte            102     \b, Beta 1.02
  2843. >>27    byte            104     \b, Beta 1.04
  2844. >>27    byte            105     \b, Alpha 1.05
  2845. >>27    byte            106     \b, Beta 1.06
  2846. >>27    byte            110     \b, Release 1.1
  2847. >>27    byte            111     \b, Alpha 1.11
  2848. >>27    byte            112     \b, Beta 1.12
  2849. >>27    byte            113     \b, Alpha 1.13
  2850. >>27    byte            114     \b, Beta 1.14
  2851. >>27    byte            115     \b, Alpha 1.15
  2852.  
  2853. # IMY
  2854. # from http://filext.com/detaillist.php?extdetail=IMY
  2855. # http://cellphones.about.com/od/cellularfaqs/f/rf_imelody.htm
  2856. # http://download.ncl.ie/doc/api/ie/ncl/media/music/IMelody.html
  2857. # http://www.wx800.com/msg/download/irda/iMelody.pdf
  2858. 0    string    BEGIN:IMELODY    iMelody Ringtone Format
  2859.  
  2860. # From: "Mateus Caruccio" <mateus@caruccio.com>
  2861. # guitar pro v3,4,5 from http://filext.com/file-extension/gp3
  2862. 0    string    \030FICHIER\ GUITAR\ PRO\ v3.    Guitar Pro Ver. 3 Tablature
  2863.  
  2864. # From: "Leslie P. Polzer" <leslie.polzer@gmx.net>
  2865. 60    string    SONG        SoundFX Module sound file
  2866.  
  2867. # Type: Adaptive Multi-Rate Codec
  2868. # URL:  http://filext.com/detaillist.php?extdetail=AMR
  2869. # From: Russell Coker <russell@coker.com.au>
  2870. 0    string    #!AMR        Adaptive Multi-Rate Codec (GSM telephony)
  2871.  
  2872. # Type: SuperCollider 3 Synth Definition File Format
  2873. # From: Mario Lang <mlang@debian.org>
  2874. 0    string    SCgf    SuperCollider3 Synth Definition file,
  2875. >4    belong    x    version %d
  2876. #----------------------------------------------------------------
  2877. # basis: file(1) magic for BBx/Pro5-files
  2878. #      Oliver Dammer <dammer@olida.de>     2005/11/07
  2879. # http://www.basis.com business-basic-files.
  2880. #
  2881. 0    string        \074\074bbx\076\076    BBx
  2882. >7    string        \000            indexed file
  2883. >7    string        \001            serial file
  2884. >7    string        \002            keyed file
  2885. >>13    short        0            (sort)
  2886. >7    string        \004            program
  2887. >>18    byte        x            (LEVEL %d)
  2888. >>>23    string        >\000            psaved
  2889. >7    string        \006            mkeyed file
  2890. >>13    short        0            (sort)
  2891. >>8    string        \000            (mkey)
  2892. #------------------------------------------------------------------------------
  2893. # bFLT: file(1) magic for BFLT uclinux binary files
  2894. #
  2895. # From Philippe De Muyter <phdm@macqel.be>
  2896. #
  2897. 0    string        bFLT        BFLT executable
  2898. >4    belong        x        - version %ld
  2899. >4    belong        4
  2900. >>36    belong&0x1    0x1        ram
  2901. >>36    belong&0x2    0x2        gotpic
  2902. >>36    belong&0x4    0x4        gzip
  2903. >>36    belong&0x8    0x8        gzdata
  2904. #------------------------------------------------------------------------------
  2905. # blender: file(1) magic for Blender 3D related files
  2906. #
  2907. # Native format rule v1.2. For questions use the developers list 
  2908. # http://lists.blender.org/mailman/listinfo/bf-committers
  2909. # GLOB chunk was moved near start and provides subversion info since 2.42 
  2910.  
  2911. 0        string    =BLENDER    Blender3D,
  2912. >7        string    =_        saved as 32-bits
  2913. >>8        string    =v        little endian
  2914. >>>9        byte    x        with version %c.
  2915. >>>10        byte    x        \b%c
  2916. >>>11        byte    x        \b%c
  2917. >>>0x40        string    =GLOB        \b.
  2918. >>>>0x58    leshort    x        \b%.4d
  2919. >>8        string    =V        big endian
  2920. >>>9        byte    x        with version %c.
  2921. >>>10        byte    x        \b%c
  2922. >>>11        byte    x        \b%c
  2923. >>>0x40        string    =GLOB        \b.
  2924. >>>>0x58    beshort    x        \b%.4d
  2925. >7        string    =-        saved as 64-bits
  2926. >>8        string    =v        little endian
  2927. >>9        byte    x        with version %c.
  2928. >>10        byte    x        \b%c
  2929. >>11        byte    x        \b%c
  2930. >>0x44        string    =GLOB        \b.
  2931. >>>0x60        leshort    x        \b%.4d
  2932. >>8        string    =V        big endian
  2933. >>>9        byte    x        with version %c.
  2934. >>>10        byte    x        \b%c
  2935. >>>11        byte    x        \b%c
  2936. >>>0x44        string    =GLOB        \b.
  2937. >>>>0x60    beshort    x        \b%.4d
  2938.  
  2939. # Scripts that run in the embeded Python interpreter
  2940. 0        string    #!BPY        Blender3D BPython script
  2941.  
  2942. #------------------------------------------------------------------------------
  2943. # blit:  file(1) magic for 68K Blit stuff as seen from 680x0 machine
  2944. #
  2945. # Note that this 0407 conflicts with several other a.out formats...
  2946. #
  2947. # XXX - should this be redone with "be" and "le", so that it works on
  2948. # little-endian machines as well?  If so, what's the deal with
  2949. # "VAX-order" and "VAX-order2"?
  2950. #
  2951. #0    long        0407        68K Blit (standalone) executable
  2952. #0    short        0407        VAX-order2 68K Blit (standalone) executable
  2953. 0    short        03401        VAX-order 68K Blit (standalone) executable
  2954. 0    long        0406        68k Blit mpx/mux executable
  2955. 0    short        0406        VAX-order2 68k Blit mpx/mux executable
  2956. 0    short        03001        VAX-order 68k Blit mpx/mux executable
  2957. # Need more values for WE32 DMD executables.
  2958. # Note that 0520 is the same as COFF
  2959. #0    short        0520        tty630 layers executable
  2960. #
  2961. # i80960 b.out objects and archives
  2962. #
  2963. 0    long        0x10d        i960 b.out relocatable object
  2964. >16    long        >0        not stripped
  2965. #
  2966. # b.out archive (hp-rt on i960)
  2967. 0    string        =!<bout>    b.out archive
  2968. >8    string        __.SYMDEF    random library
  2969. #------------------------------------------------------------------------------
  2970. # bsdi:  file(1) magic for BSD/OS (from BSDI) objects
  2971. #
  2972.  
  2973. 0    lelong        0314        386 compact demand paged pure executable
  2974. >16    lelong        >0        not stripped
  2975. >32    byte        0x6a        (uses shared libs)
  2976.  
  2977. 0    lelong        0407        386 executable
  2978. >16    lelong        >0        not stripped
  2979. >32    byte        0x6a        (uses shared libs)
  2980.  
  2981. 0    lelong        0410        386 pure executable
  2982. >16    lelong        >0        not stripped
  2983. >32    byte        0x6a        (uses shared libs)
  2984.  
  2985. 0    lelong        0413        386 demand paged pure executable
  2986. >16    lelong        >0        not stripped
  2987. >32    byte        0x6a        (uses shared libs)
  2988.  
  2989. # same as in SunOS 4.x, except for static shared libraries
  2990. 0    belong&077777777    0600413        sparc demand paged
  2991. >0    byte        &0x80
  2992. >>20    belong        <4096        shared library
  2993. >>20    belong        =4096        dynamically linked executable
  2994. >>20    belong        >4096        dynamically linked executable
  2995. >0    byte        ^0x80        executable
  2996. >16    belong        >0        not stripped
  2997. >36    belong        0xb4100001    (uses shared libs)
  2998.  
  2999. 0    belong&077777777    0600410        sparc pure
  3000. >0    byte        &0x80        dynamically linked executable
  3001. >0    byte        ^0x80        executable
  3002. >16    belong        >0        not stripped
  3003. >36    belong        0xb4100001    (uses shared libs)
  3004.  
  3005. 0    belong&077777777    0600407        sparc
  3006. >0    byte        &0x80        dynamically linked executable
  3007. >0    byte        ^0x80        executable
  3008. >16    belong        >0        not stripped
  3009. >36    belong        0xb4100001    (uses shared libs)
  3010. #------------------------------------------------------------------------------
  3011. # BTSnoop:  file(1) magic for BTSnoop files
  3012. #
  3013. # From <marcel@holtmann.org>
  3014. 0    string        btsnoop\0        BTSnoop
  3015. >8    belong        x            version %d,
  3016. >12    belong        1001            Unencapsulated HCI
  3017. >12    belong        1002            HCI UART (H4)
  3018. >12    belong        1003            HCI BCSP
  3019. >12    belong        1004            HCI Serial (H5)
  3020. >>12    belong        x            type %d
  3021. #------------------------------------------------------------------------------
  3022. # c-lang:  file(1) magic for C programs (or REXX)
  3023. #
  3024.  
  3025. # XPM icons (Greg Roelofs, newt@uchicago.edu)
  3026. # if you uncomment "/*" for C/REXX below, also uncomment this entry
  3027. #0    string        /*\ XPM\ */    X pixmap image data
  3028. #!:mime    image/x-xpmi
  3029.  
  3030. # 3DS (3d Studio files) Conflicts with diff output 0x3d '='
  3031. #16    beshort        0x3d3d        image/x-3ds
  3032.  
  3033. # this first will upset you if you're a PL/1 shop...
  3034. # in which case rm it; ascmagic will catch real C programs
  3035. #0    search/1    /*        C or REXX program text
  3036. #0    search/1    //        C++ program text
  3037.  
  3038. # From: Mikhail Teterin <mi@aldan.algebra.com> 
  3039. 0    string        cscope        cscope reference data
  3040. >7    string        x        version %.2s
  3041. # We skip the path here, because it is often long (so file will
  3042. # truncate it) and mostly redundant.
  3043. # The inverted index functionality was added some time betwen
  3044. # versions 11 and 15, so look for -q if version is above 14:
  3045. >7    string        >14
  3046. >>10    search/100    \ -q\         with inverted index
  3047. >10    search/100    \ -c\         text (non-compressed)
  3048. #------------------------------------------------------------------------------
  3049. # c64:  file(1) magic for various commodore 64 related files
  3050. #
  3051. # From: Dirk Jagdmann <doj@cubic.org>
  3052.  
  3053. 0x16500    belong        0x12014100    D64 Image
  3054. 0x16500    belong        0x12014180    D71 Image
  3055. 0x61800 belong        0x28034400    D81 Image
  3056. 0    string        C64\40CARTRIDGE    CCS C64 Emultar Cartridge Image
  3057. 0    belong        0x43154164    X64 Image
  3058.  
  3059. 0    string        GCR-1541    GCR Image
  3060. >8    byte        x        version: %i
  3061. >9    byte        x        tracks: %i
  3062.  
  3063. 9    string        PSUR        ARC archive (c64)
  3064. 2    string        -LH1-        LHA archive (c64)
  3065.  
  3066. 0    string        C64File        PC64 Emulator file
  3067. >8    string        >\0        "%s"
  3068. 0    string        C64Image    PC64 Freezer Image
  3069.  
  3070. 0    beshort        0x38CD        C64 PCLink Image
  3071. 0    string        CBM\144\0\0    Power 64 C64 Emulator Snapshot
  3072.  
  3073. 0    belong        0xFF424CFF    WRAptor packer (c64)
  3074.  
  3075. 0    string        C64S\x20tape\x20file    T64 tape Image
  3076. >32    leshort        x        Version:0x%x
  3077. >36    leshort        !0        Entries:%i
  3078. >40    string        x        Name:%.24s
  3079.  
  3080. 0    string        C64\x20tape\x20image\x20file\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0    T64 tape Image
  3081. >32    leshort        x        Version:0x%x
  3082. >36    leshort        !0        Entries:%i
  3083. >40    string        x        Name:%.24s
  3084.  
  3085. 0    string        C64S\x20tape\x20image\x20file\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0    T64 tape Image
  3086. >32    leshort        x        Version:0x%x
  3087. >36    leshort        !0        Entries:%i
  3088. >40    string        x        Name:%.24s
  3089.  
  3090. #------------------------------------------------------------------------------
  3091. # autocad:  file(1) magic for cad files
  3092. #
  3093.  
  3094. # AutoCAD DWG versions R13/R14 (www.autodesk.com)
  3095. # Written December 01, 2003 by Lester Hightower
  3096. # Based on the DWG File Format Specifications at http://www.opendwg.org/
  3097. 0    string           \101\103\061\060\061           AutoCAD
  3098. >5    string           \062\000\000\000\000           DWG ver. R13
  3099. >5    string           \064\000\000\000\000           DWG ver. R14
  3100.  
  3101. # Microstation DGN/CIT Files (www.bentley.com)
  3102. # Last updated July 29, 2005 by Lester Hightower
  3103. # DGN is the default file extension of Microstation/Intergraph CAD files.
  3104. # CIT is the proprietary raster format (similar to TIFF) used to attach
  3105. # raster underlays to Microstation DGN (vector) drawings.
  3106. # http://www.wotsit.org/search.asp
  3107. # http://filext.com/detaillist.php?extdetail=DGN
  3108. # http://filext.com/detaillist.php?extdetail=CIT
  3109. #
  3110. # http://www.bentley.com/products/default.cfm?objectid=97F351F5-9C35-4E5E-89C2
  3111. # 3F86C928&method=display&p_objectid=97F351F5-9C35-4E5E-89C280A93F86C928
  3112. # http://www.bentley.com/products/default.cfm?objectid=A5C2FD43-3AC9-4C71-B682
  3113. # 721C479F&method=display&p_objectid=A5C2FD43-3AC9-4C71-B682C7BE721C479F
  3114. 0    string    \010\011\376            Microstation
  3115. >3    string    \002
  3116. >>30    string    \026\105            DGNFile
  3117. >>30    string    \034\105            DGNFile
  3118. >>30    string    \073\107            DGNFile
  3119. >>30    string    \073\110            DGNFile
  3120. >>30    string    \106\107            DGNFile
  3121. >>30    string    \110\103            DGNFile
  3122. >>30    string    \120\104            DGNFile
  3123. >>30    string    \172\104            DGNFile
  3124. >>30    string    \172\105            DGNFile
  3125. >>30    string    \172\106            DGNFile
  3126. >>30    string    \234\106            DGNFile
  3127. >>30    string    \273\105            DGNFile
  3128. >>30    string    \306\106            DGNFile
  3129. >>30    string    \310\104            DGNFile
  3130. >>30    string    \341\104            DGNFile
  3131. >>30    string    \372\103            DGNFile
  3132. >>30    string    \372\104            DGNFile
  3133. >>30    string    \372\106            DGNFile
  3134. >>30    string    \376\103            DGNFile
  3135. >4    string    \030\000\000            CITFile
  3136. >4    string    \030\000\003            CITFile
  3137.  
  3138. # AutoCad, from Nahuel Greco
  3139. # AutoCAD DWG versions R12/R13/R14 (www.autodesk.com)
  3140. 0    string AC1012    AutoCad (release 12)
  3141. 0    string AC1013    AutoCad (release 13)
  3142. 0    string AC1014    AutoCad (release 14)
  3143.  
  3144. # CAD: file(1) magic for computer aided design files
  3145. # Phillip Griffith <phillip dot griffith at gmail dot com>
  3146. # AutoCAD magic taken from the Open Design Alliance's OpenDWG specifications.
  3147. #
  3148. 0    belong    0x08051700    Bentley/Intergraph MicroStation DGN cell library
  3149. 0    belong    0x0809fe02    Bentley/Intergraph MicroStation DGN vector CAD
  3150. 0    belong    0xc809fe02    Bentley/Intergraph MicroStation DGN vector CAD
  3151. 0    beshort    0x0809        Bentley/Intergraph MicroStation
  3152. >0x02    byte    0xfe
  3153. >>0x04    beshort    0x1800        CIT raster CAD
  3154. 0    string    AC1012        AutoDesk AutoCAD R13
  3155. 0    string    AC1014        AutoDesk AutoCAD R14 
  3156. 0    string    AC1015        AutoDesk AutoCAD R2000
  3157. #------------------------------------------------------------------------------
  3158. # Cafe Babes unite!
  3159. #
  3160. # Since Java bytecode and Mach-O fat-files have the same magic number, the test
  3161. # must be performed in the same "magic" sequence to get both right.  The long
  3162. # at offset 4 in a mach-O fat file tells the number of architectures; the short at
  3163. # offset 4 in a Java bytecode file is the JVM minor version and the
  3164. # short at offset 6 is the JVM major version.  Since there are only 
  3165. # only 18 labeled Mach-O architectures at current, and the first released 
  3166. # Java class format was version 43.0, we can safely choose any number
  3167. # between 18 and 39 to test the number of architectures against
  3168. # (and use as a hack). Let's not use 18, because the Mach-O people
  3169. # might add another one or two as time goes by...
  3170. #
  3171. 0    belong        0xcafebabe
  3172. !:mime    application/x-java-applet
  3173. >4    belong        >30        compiled Java class data,
  3174. >>6    beshort        x            version %d.
  3175. >>4    beshort        x           \b%d
  3176. # Which is which?
  3177. #>>4    belong        0x032d        (Java 1.0)
  3178. #>>4    belong        0x032d        (Java 1.1)
  3179. >>4    belong        0x002e        (Java 1.2)
  3180. >>4    belong        0x002f        (Java 1.3)
  3181. >>4    belong        0x0030        (Java 1.4)
  3182. >>4    belong        0x0031        (Java 1.5)
  3183. >>4    belong        0x0032        (Java 1.6)
  3184.  
  3185.  
  3186. 0    belong        0xcafebabe
  3187. >4    belong        1        Mach-O fat file with 1 architecture
  3188. >4    belong        >1
  3189. >>4    belong        <20        Mach-O fat file with %ld architectures
  3190.  
  3191. 0    belong        0xcafed00d    JAR compressed with pack200,
  3192. >>5    byte        x        version %d.
  3193. >>4    byte        x        \b%d
  3194. !:mime    application/x-java-pack200
  3195. #------------------------------------------------------------------------------
  3196. # CDDB: file(1) magic for CDDB(tm) format CD text data files
  3197. #
  3198. # From <steve@gracenote.com>
  3199. #
  3200. # This is the /etc/magic entry to decode datafiles as used by
  3201. # CDDB-enabled CD player applications.
  3202. #
  3203.  
  3204. 0    search/1/b    #\040xmcd    CDDB(tm) format CD text data
  3205.  
  3206. #------------------------------------------------------------------------------
  3207. # chord: file(1) magic for Chord music sheet typesetting utility input files
  3208. #
  3209. # From Philippe De Muyter <phdm@macqel.be>
  3210. # File format is actually free, but many distributed files begin with `{title'
  3211. #
  3212. 0    string        {title        Chord text file
  3213.  
  3214. # Type:    PowerTab file format
  3215. # URL:    http://www.power-tab.net/
  3216. # From:    Jelmer Vernooij <jelmer@samba.org>
  3217. 0    string        ptab\003\000    Power-Tab v3 Tablature File
  3218. 0    string        ptab\004\000    Power-Tab v4 Tablature File
  3219. #------------------------------------------------------------------------------
  3220. # cisco:  file(1) magic for cisco Systems routers
  3221. #
  3222. # Most cisco file-formats are covered by the generic elf code
  3223. #
  3224. # Microcode files are non-ELF, 0x8501 conflicts with NetBSD/alpha.
  3225. 0    belong&0xffffff00    0x85011400  cisco IOS microcode
  3226. >7    string        >\0            for '%s'
  3227. 0    belong&0xffffff00    0x8501cb00  cisco IOS experimental microcode
  3228. >7    string        >\0            for '%s'
  3229. #------------------------------------------------------------------------------
  3230. # citrus locale declaration
  3231. #
  3232.  
  3233. 0    string        RuneCT        Citrus locale declaration for LC_CTYPE
  3234.  
  3235.  
  3236. #------------------------------------------------------------------------------
  3237. # clarion:  file(1) magic for # Clarion Personal/Professional Developer
  3238. # (v2 and above)
  3239. # From: Julien Blache <jb@jblache.org>
  3240.  
  3241. # Database files
  3242. # signature
  3243. 0    leshort    0x3343    Clarion Developer (v2 and above) data file
  3244. # attributes
  3245. >2    leshort    &0x0001    \b, locked
  3246. >2    leshort    &0x0004    \b, encrypted
  3247. >2    leshort    &0x0008    \b, memo file exists
  3248. >2    leshort    &0x0010    \b, compressed
  3249. >2    leshort    &0x0040    \b, read only
  3250. # number of records
  3251. >5    lelong    x    \b, %ld records
  3252.  
  3253. # Memo files
  3254. 0    leshort    0x334d    Clarion Developer (v2 and above) memo data
  3255.  
  3256. # Key/Index files
  3257. # No magic? :(
  3258.  
  3259. # Help files
  3260. 0    leshort    0x49e0    Clarion Developer (v2 and above) help data
  3261.  
  3262. #------------------------------------------------------------------------------
  3263. # claris:  file(1) magic for claris
  3264. # "H. Nanosecond" <aldomel@ix.netcom.com>
  3265. # Claris Works a word processor, etc.
  3266. # Version 3.0
  3267.  
  3268. # .pct claris works clip art files
  3269. #0000000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
  3270. #*
  3271. #0001000 #010 250 377 377 377 377 000 213 000 230 000 021 002 377 014 000
  3272. #null to byte 1000 octal
  3273. 514    string    \377\377\377\377\000    Claris clip art?
  3274. >0    string    \0\0\0\0\0\0\0\0\0\0\0\0\0    yes.
  3275. 514    string    \377\377\377\377\001    Claris clip art?
  3276. >0    string    \0\0\0\0\0\0\0\0\0\0\0\0\0    yes.
  3277.  
  3278. # Claris works files
  3279. # .cwk
  3280. 0    string    \002\000\210\003\102\117\102\117\000\001\206 Claris works document
  3281. # .plt
  3282. 0    string    \020\341\000\000\010\010    Claris Works pallete files .plt
  3283.  
  3284. # .msp a dictionary file I am not sure about this I have only one .msp file
  3285. 0    string    \002\271\262\000\040\002\000\164    Claris works dictionary
  3286.  
  3287. # .usp are user dictionary bits
  3288. # I am not sure about a magic header:
  3289. #0000000 001 123 160 146 070 125 104 040 136 123 015 012 160 157 144 151
  3290. #        soh   S   p   f   8   U   D  sp   ^   S  cr  nl   p   o   d   i
  3291. #0000020 141 164 162 151 163 164 040 136 123 015 012 144 151 166 040 043
  3292. #          a   t   r   i   s   t  sp   ^   S  cr  nl   d   i   v  sp   #
  3293.  
  3294. # .mth Thesaurus
  3295. # starts with \0 but no magic header
  3296.  
  3297. # .chy Hyphenation file
  3298. # I am not sure: 000 210 034 000 000
  3299.  
  3300. # other claris files
  3301. #./windows/claris/useng.ndx: data
  3302. #./windows/claris/xtndtran.l32: data
  3303. #./windows/claris/xtndtran.lst: data
  3304. #./windows/claris/clworks.lbl: data
  3305. #./windows/claris/clworks.prf: data
  3306. #./windows/claris/userd.spl: data
  3307.  
  3308. #------------------------------------------------------------------------------
  3309. # clipper:  file(1) magic for Intergraph (formerly Fairchild) Clipper.
  3310. #
  3311. # XXX - what byte order does the Clipper use?
  3312. #
  3313. # XXX - what's the "!" stuff:
  3314. #
  3315. # >18    short        !074000,000000    C1 R1 
  3316. # >18    short        !074000,004000    C2 R1
  3317. # >18    short        !074000,010000    C3 R1
  3318. # >18    short        !074000,074000    TEST
  3319. #
  3320. # I shall assume it's ANDing the field with the first value and
  3321. # comparing it with the second, and rewrite it as:
  3322. #
  3323. # >18    short&074000    000000        C1 R1 
  3324. # >18    short&074000    004000        C2 R1
  3325. # >18    short&074000    010000        C3 R1
  3326. # >18    short&074000    074000        TEST
  3327. #
  3328. # as SVR3.1's "file" doesn't support anything of the "!074000,000000"
  3329. # sort, nor does SunOS 4.x, so either it's something Intergraph added
  3330. # in CLIX, or something AT&T added in SVR3.2 or later, or something
  3331. # somebody else thought was a good idea; it's not documented in the
  3332. # man page for this version of "magic", nor does it appear to be
  3333. # implemented (at least not after I blew off the bogus code to turn
  3334. # old-style "&"s into new-style "&"s, which just didn't work at all).
  3335. #
  3336. 0    short        0575        CLIPPER COFF executable (VAX #)
  3337. >20    short        0407        (impure)
  3338. >20    short        0410        (5.2 compatible)
  3339. >20    short        0411        (pure)
  3340. >20    short        0413        (demand paged)
  3341. >20    short        0443        (target shared library)
  3342. >12    long        >0        not stripped
  3343. >22    short        >0        - version %ld
  3344. 0    short        0577        CLIPPER COFF executable
  3345. >18    short&074000    000000        C1 R1 
  3346. >18    short&074000    004000        C2 R1
  3347. >18    short&074000    010000        C3 R1
  3348. >18    short&074000    074000        TEST
  3349. >20    short        0407        (impure)
  3350. >20    short        0410        (pure)
  3351. >20    short        0411        (separate I&D)
  3352. >20    short        0413        (paged)
  3353. >20    short        0443        (target shared library)
  3354. >12    long        >0        not stripped
  3355. >22    short        >0        - version %ld
  3356. >48    long&01        01        alignment trap enabled
  3357. >52    byte        1        -Ctnc
  3358. >52    byte        2        -Ctsw
  3359. >52    byte        3        -Ctpw
  3360. >52    byte        4        -Ctcb
  3361. >53    byte        1        -Cdnc
  3362. >53    byte        2        -Cdsw
  3363. >53    byte        3        -Cdpw
  3364. >53    byte        4        -Cdcb
  3365. >54    byte        1        -Csnc
  3366. >54    byte        2        -Cssw
  3367. >54    byte        3        -Cspw
  3368. >54    byte        4        -Cscb
  3369. 4    string        pipe        CLIPPER instruction trace
  3370. 4    string        prof        CLIPPER instruction profile
  3371.  
  3372. #------------------------------------------------------------------------------
  3373. # commands:  file(1) magic for various shells and interpreters
  3374. #
  3375. #0    string        :            shell archive or script for antique kernel text
  3376. 0    string/b    #!\ /bin/sh        POSIX shell script text executable
  3377. !:mime    text/x-shellscript
  3378. 0    string/b    #!\ /bin/csh        C shell script text executable
  3379. !:mime    text/x-shellscript
  3380. # korn shell magic, sent by George Wu, gwu@clyde.att.com
  3381. 0    string/b    #!\ /bin/ksh        Korn shell script text executable
  3382. !:mime    text/x-shellscript
  3383. 0    string/b     #!\ /bin/tcsh        Tenex C shell script text executable
  3384. !:mime    text/x-shellscript
  3385. 0    string/b    #!\ /usr/bin/tcsh    Tenex C shell script text executable
  3386. !:mime    text/x-shellscript
  3387. 0    string/b     #!\ /usr/local/tcsh    Tenex C shell script text executable
  3388. !:mime    text/x-shellscript
  3389. 0    string/b    #!\ /usr/local/bin/tcsh    Tenex C shell script text executable
  3390. !:mime    text/x-shellscript
  3391.  
  3392. #
  3393. # zsh/ash/ae/nawk/gawk magic from cameron@cs.unsw.oz.au (Cameron Simpson)
  3394. 0    string/b    #!\ /bin/zsh        Paul Falstad's zsh script text executable
  3395. !:mime    text/x-shellscript
  3396. 0    string/b    #!\ /usr/bin/zsh    Paul Falstad's zsh script text executable
  3397. !:mime    text/x-shellscript
  3398. 0    string/b    #!\ /usr/local/bin/zsh    Paul Falstad's zsh script text executable
  3399. !:mime    text/x-shellscript
  3400. 0    string/b    #!\ /usr/local/bin/ash    Neil Brown's ash script text executable
  3401. !:mime    text/x-shellscript
  3402. 0    string/b    #!\ /usr/local/bin/ae    Neil Brown's ae script text executable
  3403. !:mime    text/x-shellscript
  3404. 0    string/b    #!\ /bin/nawk        new awk script text executable
  3405. !:mime    text/x-nawk
  3406. 0    string/b    #!\ /usr/bin/nawk    new awk script text executable
  3407. !:mime    text/x-nawk
  3408. 0    string/b    #!\ /usr/local/bin/nawk    new awk script text executable
  3409. !:mime    text/x-nawk
  3410. 0    string/b    #!\ /bin/gawk        GNU awk script text executable
  3411. !:mime    text/x-gawk
  3412. 0    string/b    #!\ /usr/bin/gawk    GNU awk script text executable
  3413. !:mime    text/x-gawk
  3414. 0    string/b    #!\ /usr/local/bin/gawk    GNU awk script text executable
  3415. !:mime    text/x-gawk
  3416. #
  3417. 0    string/b    #!\ /bin/awk        awk script text executable
  3418. !:mime    text/x-awk
  3419. 0    string/b    #!\ /usr/bin/awk    awk script text executable
  3420. !:mime    text/x-awk
  3421. # update to distinguish from *.vcf files
  3422. # this is broken because postscript has /EBEGIN{ for example.
  3423. #0    search/Bb    BEGIN {            awk script text
  3424. 0    regex        =^\\s*BEGIN\\s*[{]    awk script text
  3425.  
  3426. # AT&T Bell Labs' Plan 9 shell
  3427. 0    string/b    #!\ /bin/rc    Plan 9 rc shell script text executable
  3428.  
  3429. # bash shell magic, from Peter Tobias (tobias@server.et-inf.fho-emden.de)
  3430. 0    string/b    #!\ /bin/bash    Bourne-Again shell script text executable
  3431. !:mime    text/x-shellscript
  3432. 0    string/b    #!\ /usr/bin/bash    Bourne-Again shell script text executable
  3433. !:mime text/x-shellscript
  3434. 0    string/b    #!\ /usr/local/bash    Bourne-Again shell script text executable
  3435. !:mime text/x-shellscript
  3436. 0    string/b    #!\ /usr/local/bin/bash    Bourne-Again shell script text executable
  3437. !:mime    text/x-shellscript
  3438.  
  3439. # using env
  3440. 0    string        #!/usr/bin/env        a
  3441. >15    string        >\0            %s script text executable
  3442. 0    string        #!\ /usr/bin/env    a
  3443. >16    string        >\0            %s script text executable
  3444.  
  3445. # PHP scripts
  3446. # Ulf Harnhammar <ulfh@update.uu.se>
  3447. 0    search/1/c    =<?php            PHP script text
  3448. !:mime    text/x-php
  3449. 0    search/1    =<?\n            PHP script text
  3450. !:mime    text/x-php
  3451. 0    search/1    =<?\r            PHP script text
  3452. !:mime    text/x-php
  3453. 0    search/1/b    #!\ /usr/local/bin/php    PHP script text executable
  3454. !:mime    text/x-php
  3455. 0    search/1/b    #!\ /usr/bin/php    PHP script text executable
  3456. !:mime    text/x-php
  3457.  
  3458. 0    string        Zend\x00        PHP script Zend Optimizer data
  3459.  
  3460. 0    string        $!            DCL command file
  3461.  
  3462. # Type: Pdmenu
  3463. # URL:  http://packages.debian.org/pdmenu
  3464. # From: Edward Betts <edward@debian.org>
  3465. 0    string    #!/usr/bin/pdmenu    Pdmenu configuration file text
  3466.  
  3467. #----------------------------------------------------------------------------
  3468. # communication
  3469.  
  3470. # TTCN is the Tree and Tabular Combined Notation described in ISO 9646-3.
  3471. # It is used for conformance testing of communication protocols.
  3472. # Added by W. Borgert <debacle@debian.org>.
  3473. 0    string        $Suite            TTCN Abstract Test Suite
  3474. >&1    string        $SuiteId
  3475. >>&1    string        >\n            %s
  3476. >&2    string        $SuiteId
  3477. >>&1    string        >\n            %s
  3478. >&3    string        $SuiteId
  3479. >>&1    string        >\n            %s
  3480.  
  3481. # MSC (message sequence charts) are a formal description technique,
  3482. # described in ITU-T Z.120, mainly used for communication protocols.
  3483. # Added by W. Borgert <debacle@debian.org>.
  3484. 0    string        mscdocument    Message Sequence Chart (document)
  3485. 0    string        msc        Message Sequence Chart (chart)
  3486. 0    string        submsc        Message Sequence Chart (subchart)
  3487.  
  3488. #------------------------------------------------------------------------------
  3489. # compress:  file(1) magic for pure-compression formats (no archives)
  3490. #
  3491. # compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, etc.
  3492. #
  3493. # Formats for various forms of compressed data
  3494. # Formats for "compress" proper have been moved into "compress.c",
  3495. # because it tries to uncompress it to figure out what's inside.
  3496.  
  3497. # standard unix compress
  3498. 0    string        \037\235    compress'd data
  3499. !:mime    application/x-compress
  3500. !:apple    LZIVZIVU
  3501. >2    byte&0x80    >0        block compressed
  3502. >2    byte&0x1f    x        %d bits
  3503.  
  3504. # gzip (GNU zip, not to be confused with Info-ZIP or PKWARE zip archiver)
  3505. #   Edited by Chris Chittleborough <cchittleborough@yahoo.com.au>, March 2002
  3506. #    * Original filename is only at offset 10 if "extra field" absent
  3507. #    * Produce shorter output - notably, only report compression methods
  3508. #      other than 8 ("deflate", the only method defined in RFC 1952).
  3509. 0       string          \037\213        gzip compressed data
  3510. !:mime    application/x-gzip
  3511. >2    byte        <8        \b, reserved method
  3512. >2    byte        >8        \b, unknown method
  3513. >3    byte        &0x01        \b, ASCII
  3514. >3    byte        &0x02        \b, has CRC
  3515. >3    byte        &0x04        \b, extra field
  3516. >3    byte&0xC    =0x08
  3517. >>10    string        x        \b, was "%s"
  3518. >3    byte        &0x10        \b, has comment
  3519. >9    byte        =0x00        \b, from FAT filesystem (MS-DOS, OS/2, NT)
  3520. >9    byte        =0x01        \b, from Amiga
  3521. >9    byte        =0x02        \b, from VMS
  3522. >9    byte        =0x03        \b, from Unix
  3523. >9    byte        =0x04        \b, from VM/CMS
  3524. >9    byte        =0x05        \b, from Atari
  3525. >9    byte        =0x06        \b, from HPFS filesystem (OS/2, NT)
  3526. >9    byte        =0x07        \b, from MacOS
  3527. >9    byte        =0x08        \b, from Z-System
  3528. >9    byte        =0x09        \b, from CP/M
  3529. >9    byte        =0x0A        \b, from TOPS/20
  3530. >9    byte        =0x0B        \b, from NTFS filesystem (NT)
  3531. >9    byte        =0x0C        \b, from QDOS
  3532. >9    byte        =0x0D        \b, from Acorn RISCOS
  3533. >3    byte        &0x10        \b, comment
  3534. >3    byte        &0x20        \b, encrypted
  3535. >4    ledate        >0        \b, last modified: %s
  3536. >8    byte        2        \b, max compression
  3537. >8    byte        4        \b, max speed
  3538.  
  3539. # packed data, Huffman (minimum redundancy) codes on a byte-by-byte basis
  3540. 0    string        \037\036    packed data
  3541. !:mime    application/octet-stream
  3542. >2    belong        >1        \b, %d characters originally
  3543. >2    belong        =1        \b, %d character originally
  3544. #
  3545. # This magic number is byte-order-independent.
  3546. 0    short        0x1f1f        old packed data
  3547. !:mime    application/octet-stream
  3548.  
  3549. # XXX - why *two* entries for "compacted data", one of which is
  3550. # byte-order independent, and one of which is byte-order dependent?
  3551. #
  3552. 0    short        0x1fff        compacted data
  3553. !:mime    application/octet-stream
  3554. # This string is valid for SunOS (BE) and a matching "short" is listed
  3555. # in the Ultrix (LE) magic file.
  3556. 0    string        \377\037    compacted data
  3557. !:mime    application/octet-stream
  3558. 0    short        0145405        huf output
  3559. !:mime    application/octet-stream
  3560.  
  3561. # bzip2
  3562. 0    string        BZh        bzip2 compressed data
  3563. !:mime    application/x-bzip2
  3564. >3    byte        >47        \b, block size = %c00k
  3565.  
  3566. # lzip
  3567. 0    string        LZIP        lzip compressed data
  3568. !:mime application/x-lzip
  3569. >4    byte        x        \b, version: %d
  3570.  
  3571. # squeeze and crunch
  3572. # Michael Haardt <michael@cantor.informatik.rwth-aachen.de>
  3573. 0    beshort        0x76FF        squeezed data,
  3574. >4    string        x        original name %s
  3575. 0    beshort        0x76FE        crunched data,
  3576. >2    string        x        original name %s
  3577. 0    beshort        0x76FD        LZH compressed data,
  3578. >2    string        x        original name %s
  3579.  
  3580. # Freeze
  3581. 0    string        \037\237    frozen file 2.1
  3582. 0    string        \037\236    frozen file 1.0 (or gzip 0.5)
  3583.  
  3584. # SCO compress -H (LZH)
  3585. 0    string        \037\240    SCO compress -H (LZH) data
  3586.  
  3587. # European GSM 06.10 is a provisional standard for full-rate speech
  3588. # transcoding, prI-ETS 300 036, which uses RPE/LTP (residual pulse
  3589. # excitation/long term prediction) coding at 13 kbit/s.
  3590. #
  3591. # There's only a magic nibble (4 bits); that nibble repeats every 33
  3592. # bytes.  This isn't suited for use, but maybe we can use it someday.
  3593. #
  3594. # This will cause very short GSM files to be declared as data and
  3595. # mismatches to be declared as data too!
  3596. #0    byte&0xF0    0xd0        data
  3597. #>33    byte&0xF0    0xd0
  3598. #>66    byte&0xF0    0xd0
  3599. #>99    byte&0xF0    0xd0
  3600. #>132    byte&0xF0    0xd0        GSM 06.10 compressed audio
  3601.  
  3602. # bzip    a block-sorting file compressor
  3603. #    by Julian Seward <sewardj@cs.man.ac.uk> and others
  3604. #
  3605. #0    string        BZ        bzip compressed data
  3606. #>2    byte        x        \b, version: %c
  3607. #>3    string        =1        \b, compression block size 100k
  3608. #>3    string        =2        \b, compression block size 200k
  3609. #>3    string        =3        \b, compression block size 300k
  3610. #>3    string        =4        \b, compression block size 400k
  3611. #>3    string        =5        \b, compression block size 500k
  3612. #>3    string        =6        \b, compression block size 600k
  3613. #>3    string        =7        \b, compression block size 700k
  3614. #>3    string        =8        \b, compression block size 800k
  3615. #>3    string        =9        \b, compression block size 900k
  3616.  
  3617. # lzop from <markus.oberhumer@jk.uni-linz.ac.at>
  3618. 0    string        \x89\x4c\x5a\x4f\x00\x0d\x0a\x1a\x0a    lzop compressed data
  3619. >9    beshort        <0x0940
  3620. >>9    byte&0xf0    =0x00        - version 0.
  3621. >>9    beshort&0x0fff    x        \b%03x,
  3622. >>13    byte        1        LZO1X-1,
  3623. >>13    byte        2        LZO1X-1(15),
  3624. >>13    byte        3        LZO1X-999,
  3625. ## >>22    bedate        >0        last modified: %s,
  3626. >>14    byte        =0x00        os: MS-DOS
  3627. >>14    byte        =0x01        os: Amiga
  3628. >>14    byte        =0x02        os: VMS
  3629. >>14    byte        =0x03        os: Unix
  3630. >>14    byte        =0x05        os: Atari
  3631. >>14    byte        =0x06        os: OS/2
  3632. >>14    byte        =0x07        os: MacOS
  3633. >>14    byte        =0x0A        os: Tops/20
  3634. >>14    byte        =0x0B        os: WinNT
  3635. >>14    byte        =0x0E        os: Win32
  3636. >9    beshort        >0x0939
  3637. >>9    byte&0xf0    =0x00        - version 0.
  3638. >>9    byte&0xf0    =0x10        - version 1.
  3639. >>9    byte&0xf0    =0x20        - version 2.
  3640. >>9    beshort&0x0fff    x        \b%03x,
  3641. >>15    byte        1        LZO1X-1,
  3642. >>15    byte        2        LZO1X-1(15),
  3643. >>15    byte        3        LZO1X-999,
  3644. ## >>25    bedate        >0        last modified: %s,
  3645. >>17    byte        =0x00        os: MS-DOS
  3646. >>17    byte        =0x01        os: Amiga
  3647. >>17    byte        =0x02        os: VMS
  3648. >>17    byte        =0x03        os: Unix
  3649. >>17    byte        =0x05        os: Atari
  3650. >>17    byte        =0x06        os: OS/2
  3651. >>17    byte        =0x07        os: MacOS
  3652. >>17    byte        =0x0A        os: Tops/20
  3653. >>17    byte        =0x0B        os: WinNT
  3654. >>17    byte        =0x0E        os: Win32
  3655.  
  3656. # 4.3BSD-Quasijarus Strong Compression
  3657. # http://minnie.tuhs.org/Quasijarus/compress.html
  3658. 0    string        \037\241    Quasijarus strong compressed data
  3659.  
  3660. # From: Cory Dikkers <cdikkers@swbell.net>
  3661. 0    string        XPKF        Amiga xpkf.library compressed data
  3662. 0    string        PP11        Power Packer 1.1 compressed data
  3663. 0    string        PP20        Power Packer 2.0 compressed data,
  3664. >4    belong        0x09090909    fast compression
  3665. >4    belong        0x090A0A0A    mediocre compression
  3666. >4    belong        0x090A0B0B    good compression
  3667. >4    belong        0x090A0C0C    very good compression
  3668. >4    belong        0x090A0C0D    best compression
  3669.  
  3670. # 7-zip archiver, from Thomas Klausner (wiz@danbala.tuwien.ac.at)
  3671. # http://www.7-zip.org or DOC/7zFormat.txt 
  3672. #
  3673. 0    string        7z\274\257\047\034    7-zip archive data,
  3674. >6    byte        x            version %d
  3675. >7    byte        x            \b.%d
  3676.  
  3677. # Type: LZMA
  3678. # URL:  http://www.7-zip.org/sdk.html
  3679. # From: Robert Millan <rmh@aybabtu.com> and Reuben Thomas <rrt@sc3d.org>
  3680. # Commented out because apparently not reliable (according to Debian
  3681. # bug #364260)
  3682. #0    string        ]\000\000\200\000    LZMA compressed data
  3683.  
  3684. # http://tukaani.org/xz/xz-file-format.txt
  3685. 0    ustring        \xFD7zXZ\x00        xz compressed data
  3686. !:mime    application/x-xz
  3687.  
  3688. # AFX compressed files (Wolfram Kleff)
  3689. 2    string        -afx-        AFX compressed file data
  3690.  
  3691. # Supplementary magic data for the file(1) command to support
  3692. # rzip(1).  The format is described in magic(5).
  3693. #
  3694. # Copyright (C) 2003 by Andrew Tridgell.  You may do whatever you want with
  3695. # this file.
  3696. #
  3697. 0    string        RZIP        rzip compressed data
  3698. >4    byte        x        - version %d
  3699. >5    byte        x        \b.%d
  3700. >6    belong        x        (%d bytes)
  3701.  
  3702. # Type: XZ
  3703. # URL: http://tukaani.org/xz/
  3704. 0    string        \xfd\x37\x7a\x58\x5a\x00    XZ compressed data
  3705. !:mime application/x-xz
  3706. #------------------------------------------------------------------------------
  3707. # Console game magic
  3708. # Toby Deshane <hac@shoelace.digivill.net>
  3709. #    ines:  file(1) magic for Marat's iNES Nintendo Entertainment System
  3710. #           ROM dump format
  3711.  
  3712. 0 string NES\032 iNES ROM dump,
  3713. >4 byte  x     %dx16k PRG
  3714. >5 byte  x     \b, %dx8k CHR
  3715. >6 byte&0x01  =0x1  \b, [Vert.]
  3716. >6 byte&0x01  =0x0  \b, [Horiz.]
  3717. >6 byte&0x02  =0x2  \b, [SRAM]
  3718. >6 byte&0x04  =0x4  \b, [Trainer]
  3719. >6 byte&0x04  =0x8  \b, [4-Scr]
  3720.  
  3721. #------------------------------------------------------------------------------
  3722. # gameboy:  file(1) magic for the Nintendo (Color) Gameboy raw ROM format
  3723. #
  3724. 0x104 belong 0xCEED6666 Gameboy ROM:
  3725. >0x134 string >\0 "%.16s"
  3726. >0x146 byte 0x03  \b,[SGB]
  3727. >0x147 byte 0x00  \b, [ROM ONLY]
  3728. >0x147 byte 0x01  \b, [ROM+MBC1]
  3729. >0x147 byte 0x02  \b, [ROM+MBC1+RAM]
  3730. >0x147 byte 0x03  \b, [ROM+MBC1+RAM+BATT]
  3731. >0x147 byte 0x05  \b, [ROM+MBC2]
  3732. >0x147 byte 0x06  \b, [ROM+MBC2+BATTERY]
  3733. >0x147 byte 0x08  \b, [ROM+RAM]
  3734. >0x147 byte 0x09  \b, [ROM+RAM+BATTERY]
  3735. >0x147 byte 0x0B  \b, [ROM+MMM01]
  3736. >0x147 byte 0x0C  \b, [ROM+MMM01+SRAM]
  3737. >0x147 byte 0x0D  \b, [ROM+MMM01+SRAM+BATT]
  3738. >0x147 byte 0x0F  \b, [ROM+MBC3+TIMER+BATT]
  3739. >0x147 byte 0x10  \b, [ROM+MBC3+TIMER+RAM+BATT]
  3740. >0x147 byte 0x11  \b, [ROM+MBC3]
  3741. >0x147 byte 0x12  \b, [ROM+MBC3+RAM]
  3742. >0x147 byte 0x13  \b, [ROM+MBC3+RAM+BATT]
  3743. >0x147 byte 0x19  \b, [ROM+MBC5]
  3744. >0x147 byte 0x1A  \b, [ROM+MBC5+RAM]
  3745. >0x147 byte 0x1B  \b, [ROM+MBC5+RAM+BATT]
  3746. >0x147 byte 0x1C  \b, [ROM+MBC5+RUMBLE]
  3747. >0x147 byte 0x1D  \b, [ROM+MBC5+RUMBLE+SRAM]
  3748. >0x147 byte 0x1E  \b, [ROM+MBC5+RUMBLE+SRAM+BATT]
  3749. >0x147 byte 0x1F  \b, [Pocket Camera]
  3750. >0x147 byte 0xFD  \b, [Bandai TAMA5]
  3751. >0x147 byte 0xFE  \b, [Hudson HuC-3]
  3752. >0x147 byte 0xFF  \b, [Hudson HuC-1]
  3753.  
  3754. >0x148 byte 0     \b, ROM: 256Kbit
  3755. >0x148 byte 1     \b, ROM: 512Kbit
  3756. >0x148 byte 2     \b, ROM: 1Mbit
  3757. >0x148 byte 3     \b, ROM: 2Mbit
  3758. >0x148 byte 4     \b, ROM: 4Mbit
  3759. >0x148 byte 5     \b, ROM: 8Mbit
  3760. >0x148 byte 6     \b, ROM: 16Mbit
  3761. >0x148 byte 0x52  \b, ROM: 9Mbit
  3762. >0x148 byte 0x53  \b, ROM: 10Mbit
  3763. >0x148 byte 0x54  \b, ROM: 12Mbit
  3764.  
  3765. >0x149 byte 1     \b, RAM: 16Kbit
  3766. >0x149 byte 2     \b, RAM: 64Kbit
  3767. >0x149 byte 3     \b, RAM: 128Kbit
  3768. >0x149 byte 4     \b, RAM: 1Mbit
  3769.  
  3770. #>0x14e long  x     \b, CRC: %x
  3771.  
  3772. #------------------------------------------------------------------------------
  3773. # genesis:  file(1) magic for the Sega MegaDrive/Genesis raw ROM format
  3774. #
  3775. 0x100 string SEGA  Sega MegaDrive/Genesis raw ROM dump
  3776. >0x120 string >\0 Name: "%.16s"
  3777. >0x110 string >\0 %.16s
  3778. >0x1B0 string RA with SRAM
  3779.  
  3780. #------------------------------------------------------------------------------
  3781. # genesis:  file(1) magic for the Super MegaDrive ROM dump format
  3782. #
  3783. 0x280 string EAGN  Super MagicDrive ROM dump
  3784. >0 byte x %dx16k blocks
  3785. >2 byte 0 \b, last in series or standalone
  3786. >2 byte >0 \b, split ROM
  3787. >8 byte 0xAA
  3788. >9 byte 0xBB
  3789.  
  3790. #------------------------------------------------------------------------------
  3791. # genesis:  file(1) alternate magic for the Super MegaDrive ROM dump format
  3792. #
  3793. 0x280 string EAMG  Super MagicDrive ROM dump
  3794. >0 byte x %dx16k blocks
  3795. >2 byte x \b, last in series or standalone
  3796. >8 byte 0xAA
  3797. >9 byte 0xBB
  3798.  
  3799. #------------------------------------------------------------------------------
  3800. # smsgg:  file(1) magic for Sega Master System and Game Gear ROM dumps
  3801. #
  3802. # Does not detect all images.  Very preliminary guesswork.  Need more data
  3803. # on format.
  3804. #
  3805. # FIXME: need a little more info...;P
  3806. #
  3807. #0 byte 0xF3
  3808. #>1 byte 0xED  Sega Master System/Game Gear ROM dump
  3809. #>1 byte 0x31  Sega Master System/Game Gear ROM dump
  3810. #>1 byte 0xDB  Sega Master System/Game Gear ROM dump
  3811. #>1 byte 0xAF  Sega Master System/Game Gear ROM dump
  3812. #>1 byte 0xC3  Sega Master System/Game Gear ROM dump
  3813.  
  3814. #------------------------------------------------------------------------------
  3815. # dreamcast:  file(1) uncertain magic for the Sega Dreamcast VMU image format
  3816. #
  3817. 0 belong 0x21068028   Sega Dreamcast VMU game image
  3818. 0 string LCDi         Dream Animator file
  3819.  
  3820. #------------------------------------------------------------------------------
  3821. # v64: file(1) uncertain magic for the V64 format N64 ROM dumps
  3822. #
  3823. 0 belong 0x37804012    V64 Nintendo 64 ROM dump
  3824.  
  3825. # From: "Nelson A. de Oliveira" <naoliv@gmail.com>
  3826. # Nintendo .nds
  3827. 192    string    \044\377\256Qi\232    Nintendo DS Game ROM Image
  3828. # Nintendo .gba
  3829. 0    string    \056\000\000\352$\377\256Qi    Nintendo Game Boy Advance ROM Image
  3830.  
  3831. #------------------------------------------------------------------------------
  3832. # msx: file(1) magic for MSX game cartridge dumps
  3833. # Too simple - MPi
  3834. #0 beshort 0x4142 MSX game cartridge dump 
  3835.  
  3836. #------------------------------------------------------------------------------
  3837. # Sony Playstation executables (Adam Sjoegren <asjo@diku.dk>) :
  3838. 0    string    PS-X\ EXE    Sony Playstation executable
  3839. #  Area:
  3840. >113    string    x        (%s)
  3841.  
  3842. #------------------------------------------------------------------------------
  3843. # Microsoft Xbox executables .xbe (Esa Hyyti├ñ <ehyytia@cc.hut.fi>)
  3844. 0       string          XBEH            XBE, Microsoft Xbox executable
  3845. # probabilistic checks whether signed or not
  3846. >0x0004 ulelong =0x0
  3847. >>&2    ulelong =0x0
  3848. >>>&2   ulelong =0x0  \b, not signed
  3849. >0x0004 ulelong >0
  3850. >>&2    ulelong >0
  3851. >>>&2   ulelong >0    \b, signed
  3852. # expect base address of 0x10000
  3853. >0x0104               ulelong =0x10000
  3854. >>(0x0118-0x0FF60)    ulelong&0x80000007  0x80000007 \b, all regions
  3855. >>(0x0118-0x0FF60)    ulelong&0x80000007  !0x80000007
  3856. >>>(0x0118-0x0FF60)   ulelong >0           (regions:
  3857. >>>>(0x0118-0x0FF60)  ulelong &0x00000001  NA
  3858. >>>>(0x0118-0x0FF60)  ulelong &0x00000002  Japan
  3859. >>>>(0x0118-0x0FF60)  ulelong &0x00000004  Rest_of_World
  3860. >>>>(0x0118-0x0FF60)  ulelong &0x80000000  Manufacturer
  3861. >>>(0x0118-0x0FF60)   ulelong >0           \b)
  3862.  
  3863. # --------------------------------
  3864. # Microsoft Xbox data file formats
  3865. 0       string          XIP0            XIP, Microsoft Xbox data
  3866. 0       string          XTF0            XTF, Microsoft Xbox data
  3867.  
  3868. # Atari Lynx cartridge dump (EXE/BLL header)
  3869. # From: "Stefan A. Haubenthal" <polluks@web.de>
  3870.  
  3871. 0    beshort        0x8008        Lynx cartridge,
  3872. >2    beshort        x        RAM start $%04x
  3873. >6    string        BS93
  3874.  
  3875. # Opera file system that is used on the 3DO console
  3876. # From: Serge van den Boom <svdb@stack.nl>
  3877. 0    string        \x01ZZZZZ\x01    3DO "Opera" file system
  3878.  
  3879. # From G├╝rkan Seng├╝n <gurkan@linuks.mine.nu>, www.linuks.mine.nu
  3880. 0    string        GBS        Nintendo Gameboy Music/Audio Data
  3881. 12    string        GameBoy\ Music\ Module    Nintendo Gameboy Music Module
  3882.  
  3883. # Playstations Patch Files from: From: Thomas Klausner <tk@giga.or.at>
  3884. 0    string    PPF30            Playstation Patch File version 3.0
  3885. >5    byte    0            \b, PPF 1.0 patch
  3886. >5    byte    1            \b, PPF 2.0 patch
  3887. >5    byte    2            \b, PPF 3.0 patch
  3888. >>56    byte    0            \b, Imagetype BIN (any)
  3889. >>56    byte    1            \b, Imagetype GI (PrimoDVD)
  3890. >>57    byte    0            \b, Blockcheck disabled
  3891. >>57    byte    1            \b, Blockcheck enabled
  3892. >>58    byte    0            \b, Undo data not available
  3893. >>58    byte    1            \b, Undo data available
  3894. >6    string    x            \b, description: %s
  3895.  
  3896. 0    string    PPF20            Playstation Patch File version 2.0
  3897. >5    byte    0            \b, PPF 1.0 patch
  3898. >5    byte    1            \b, PPF 2.0 patch
  3899. >>56    lelong    >0            \b, size of file to patch %d
  3900. >6    string    x            \b, description: %s
  3901.  
  3902. 0    string    PPF10            Playstation Patch File version 1.0
  3903. >5    byte    0            \b, Simple Encoding
  3904. >6    string    x            \b, description: %s
  3905.  
  3906. # From: Daniel Dawson <ddawson@icehouse.net>
  3907. # SNES9x .smv "movie" file format.
  3908. 0        string        SMV\x1A    SNES9x input recording
  3909. >0x4        lelong        x    \b, version %d
  3910. # version 4 is latest so far 
  3911. >0x4        lelong        <5
  3912. >>0x8        ledate        x    \b, recorded at %s
  3913. >>0xc        lelong        >0    \b, rerecorded %d times
  3914. >>0x10        lelong        x    \b, %d frames long
  3915. >>0x14        byte        >0    \b, data for controller(s):
  3916. >>>0x14        byte        &0x1    #1
  3917. >>>0x14        byte        &0x2    #2
  3918. >>>0x14        byte        &0x4    #3
  3919. >>>0x14        byte        &0x8    #4
  3920. >>>0x14        byte        &0x10    #5
  3921. >>0x15        byte        ^0x1    \b, begins from snapshot
  3922. >>0x15        byte        &0x1    \b, begins from reset
  3923. >>0x15        byte        ^0x2    \b, NTSC standard
  3924. >>0x15        byte        &0x2    \b, PAL standard
  3925. >>0x17        byte        &0x1    \b, settings:
  3926. # WIP1Timing not used as of version 4
  3927. >>>0x4        lelong        <4
  3928. >>>>0x17    byte        &0x2    WIP1Timing
  3929. >>>0x17        byte        &0x4    Left+Right
  3930. >>>0x17        byte        &0x8    VolumeEnvX
  3931. >>>0x17        byte        &0x10    FakeMute
  3932. >>>0x17        byte        &0x20    SyncSound
  3933. # New flag as of version 4
  3934. >>>0x4        lelong        >3
  3935. >>>>0x17    byte        &0x80    NoCPUShutdown
  3936. >>0x4        lelong        <4
  3937. >>>0x18        lelong        >0x23
  3938. >>>>0x20    leshort        !0
  3939. >>>>>0x20    lestring16    x    \b, metadata: "%s"
  3940. >>0x4        lelong        >3
  3941. >>>0x24        byte        >0    \b, port 1:
  3942. >>>>0x24    byte        1    joypad
  3943. >>>>0x24    byte        2    mouse
  3944. >>>>0x24    byte        3    SuperScope
  3945. >>>>0x24    byte        4    Justifier
  3946. >>>>0x24    byte        5    multitap
  3947. >>>0x24        byte        >0    \b, port 2:
  3948. >>>>0x25    byte        1    joypad
  3949. >>>>0x25    byte        2    mouse
  3950. >>>>0x25    byte        3    SuperScope
  3951. >>>>0x25    byte        4    Justifier
  3952. >>>>0x25    byte        5    multitap
  3953. >>>0x18        lelong        >0x43
  3954. >>>>0x40    leshort        !0
  3955. >>>>>0x40    lestring16    x    \b, metadata: "%s"
  3956. >>0x17        byte        &0x40   \b, ROM:
  3957. >>>(0x18.l-26)    lelong        x    CRC32 0x%08x
  3958. >>>(0x18.l-23)    string        x    "%s"
  3959.  
  3960. # Type: scummVM savegame files
  3961. # From: Sven Hartge <debian@ds9.argh.org>
  3962. 0    string    SCVM    ScummVM savegame
  3963. >12    string    >\0    "%s"
  3964. #------------------------------------------------------------------------------
  3965. # convex:  file(1) magic for Convex boxes
  3966. #
  3967. # Convexes are big-endian.
  3968. #
  3969. # /*\
  3970. #  * Below are the magic numbers and tests added for Convex.
  3971. #  * Added at beginning, because they are expected to be used most.
  3972. # \*/
  3973. 0    belong    0507    Convex old-style object
  3974. >16    belong    >0    not stripped
  3975. 0    belong    0513    Convex old-style demand paged executable
  3976. >16    belong    >0    not stripped
  3977. 0    belong    0515    Convex old-style pre-paged executable
  3978. >16    belong    >0    not stripped
  3979. 0    belong    0517    Convex old-style pre-paged, non-swapped executable
  3980. >16    belong    >0    not stripped
  3981. 0    belong    0x011257    Core file
  3982. #
  3983. # The following are a series of dump format magic numbers.  Each one
  3984. # corresponds to a drastically different dump format.  The first on is
  3985. # the original dump format on a 4.1 BSD or earlier file system.  The
  3986. # second marks the change between the 4.1 file system and the 4.2 file
  3987. # system.  The Third marks the changing of the block size from 1K
  3988. # to 2K to be compatible with an IDC file system.  The fourth indicates
  3989. # a dump that is dependent on Convex Storage Manager, because data in
  3990. # secondary storage is not physically contained within the dump.
  3991. # The restore program uses these number to determine how the data is
  3992. # to be extracted.
  3993. #
  3994. 24    belong    =60011    dump format, 4.1 BSD or earlier
  3995. 24    belong    =60012    dump format, 4.2 or 4.3 BSD without IDC
  3996. 24    belong    =60013    dump format, 4.2 or 4.3 BSD (IDC compatible)
  3997. 24    belong    =60014    dump format, Convex Storage Manager by-reference dump
  3998. #
  3999. # what follows is a bunch of bit-mask checks on the flags field of the opthdr.
  4000. # If there is no `=' sign, assume just checking for whether the bit is set?
  4001. #
  4002. 0    belong    0601        Convex SOFF
  4003. >88    belong&0x000f0000    =0x00000000    c1
  4004. >88    belong            &0x00010000    c2
  4005. >88    belong            &0x00020000    c2mp
  4006. >88    belong            &0x00040000    parallel
  4007. >88    belong            &0x00080000    intrinsic
  4008. >88    belong            &0x00000001    demand paged
  4009. >88    belong            &0x00000002    pre-paged
  4010. >88    belong            &0x00000004    non-swapped
  4011. >88    belong            &0x00000008    POSIX
  4012. #
  4013. >84    belong            &0x80000000    executable
  4014. >84    belong            &0x40000000    object
  4015. >84    belong&0x20000000    =0        not stripped
  4016. >84    belong&0x18000000    =0x00000000    native fpmode
  4017. >84    belong&0x18000000    =0x10000000    ieee fpmode
  4018. >84    belong&0x18000000    =0x18000000    undefined fpmode
  4019. #
  4020. 0    belong            0605        Convex SOFF core
  4021. #
  4022. 0    belong            0607        Convex SOFF checkpoint
  4023. >88    belong&0x000f0000    =0x00000000    c1
  4024. >88    belong            &0x00010000    c2
  4025. >88    belong            &0x00020000    c2mp
  4026. >88    belong            &0x00040000    parallel
  4027. >88    belong            &0x00080000    intrinsic
  4028. >88    belong            &0x00000008    POSIX
  4029. #
  4030. >84    belong&0x18000000    =0x00000000    native fpmode
  4031. >84    belong&0x18000000    =0x10000000    ieee fpmode
  4032. >84    belong&0x18000000    =0x18000000    undefined fpmode
  4033.  
  4034. #------------------------------------------------------------------------------
  4035. # cracklib:  file (1) magic for cracklib v2.7
  4036.  
  4037. 0    lelong    0x70775631    Cracklib password index, little endian
  4038. >4    long    >0        (%i words)
  4039. >4    long    0        ("64-bit")
  4040. >>8    long    >-1        (%i words)
  4041. 0    belong    0x70775631    Cracklib password index, big endian
  4042. >4    belong    >-1        (%i words)
  4043. # really bellong 0x0000000070775631
  4044. 0    search/1    \0\0\0\0pwV1    Cracklib password index, big endian ("64-bit")
  4045. >12    belong    >0        (%i words)
  4046. # ----------------------------------------------------------------------------
  4047. # ctags:  file (1) magic for Exuberant Ctags files
  4048. # From: Alexander Mai <mai@migdal.ikp.physik.tu-darmstadt.de>
  4049. 0    search/1    =!_TAG    Exuberant Ctags tag file text
  4050.  
  4051. #------------------------------------------------------------------------------
  4052. # dact:  file(1) magic for DACT compressed files
  4053. #
  4054. 0    long        0x444354C3    DACT compressed data
  4055. >4    byte        >-1        (version %i.
  4056. >5    byte        >-1        $BS%i.
  4057. >6    byte        >-1        $BS%i)
  4058. >7    long        >0        $BS, original size: %i bytes
  4059. >15    long        >30        $BS, block size: %i bytes
  4060.  
  4061. #------------------------------------------------------------------------------
  4062. # database:  file(1) magic for various databases
  4063. #
  4064. # extracted from header/code files by Graeme Wilford (eep2gw@ee.surrey.ac.uk)
  4065. #
  4066. #
  4067. # GDBM magic numbers
  4068. #  Will be maintained as part of the GDBM distribution in the future.
  4069. #  <downsj@teeny.org>
  4070. 0    belong    0x13579ace    GNU dbm 1.x or ndbm database, big endian
  4071. !:mime    application/x-gdbm
  4072. 0    lelong    0x13579ace    GNU dbm 1.x or ndbm database, little endian
  4073. !:mime    application/x-gdbm
  4074. 0    string    GDBM        GNU dbm 2.x database
  4075. !:mime    application/x-gdbm
  4076. #
  4077. # Berkeley DB
  4078. #
  4079. # Ian Darwin's file /etc/magic files: big/little-endian version.
  4080. #
  4081. # Hash 1.85/1.86 databases store metadata in network byte order.
  4082. # Btree 1.85/1.86 databases store the metadata in host byte order.
  4083. # Hash and Btree 2.X and later databases store the metadata in host byte order.
  4084.  
  4085. 0    long    0x00061561    Berkeley DB
  4086. !:mime    application/x-dbm
  4087. >8    belong    4321
  4088. >>4    belong    >2        1.86
  4089. >>4    belong    <3        1.85
  4090. >>4    belong    >0        (Hash, version %d, native byte-order)
  4091. >8    belong    1234
  4092. >>4    belong    >2        1.86
  4093. >>4    belong    <3        1.85
  4094. >>4    belong    >0        (Hash, version %d, little-endian)
  4095.  
  4096. 0    belong    0x00061561    Berkeley DB
  4097. >8    belong    4321
  4098. >>4    belong    >2        1.86
  4099. >>4    belong    <3        1.85
  4100. >>4    belong    >0        (Hash, version %d, big-endian)
  4101. >8    belong    1234
  4102. >>4    belong    >2        1.86
  4103. >>4    belong    <3        1.85
  4104. >>4    belong    >0        (Hash, version %d, native byte-order)
  4105.  
  4106. 0    long    0x00053162    Berkeley DB 1.85/1.86
  4107. >4    long    >0        (Btree, version %d, native byte-order)
  4108. 0    belong    0x00053162    Berkeley DB 1.85/1.86
  4109. >4    belong    >0        (Btree, version %d, big-endian)
  4110. 0    lelong    0x00053162    Berkeley DB 1.85/1.86
  4111. >4    lelong    >0        (Btree, version %d, little-endian)
  4112.  
  4113. 12    long    0x00061561    Berkeley DB
  4114. >16    long    >0        (Hash, version %d, native byte-order)
  4115. 12    belong    0x00061561    Berkeley DB
  4116. >16    belong    >0        (Hash, version %d, big-endian)
  4117. 12    lelong    0x00061561    Berkeley DB
  4118. >16    lelong    >0        (Hash, version %d, little-endian)
  4119.  
  4120. 12    long    0x00053162    Berkeley DB
  4121. >16    long    >0        (Btree, version %d, native byte-order)
  4122. 12    belong    0x00053162    Berkeley DB
  4123. >16    belong    >0        (Btree, version %d, big-endian)
  4124. 12    lelong    0x00053162    Berkeley DB
  4125. >16    lelong    >0        (Btree, version %d, little-endian)
  4126.  
  4127. 12    long    0x00042253    Berkeley DB
  4128. >16    long    >0        (Queue, version %d, native byte-order)
  4129. 12    belong    0x00042253    Berkeley DB
  4130. >16    belong    >0        (Queue, version %d, big-endian)
  4131. 12    lelong    0x00042253    Berkeley DB
  4132. >16    lelong    >0        (Queue, version %d, little-endian)
  4133.  
  4134. # From Max Bowsher.
  4135. 12    long    0x00040988    Berkeley DB
  4136. >16    long    >0        (Log, version %d, native byte-order)
  4137. 12    belong    0x00040988    Berkeley DB 
  4138. >16    belong    >0        (Log, version %d, big-endian)
  4139. 12    lelong    0x00040988    Berkeley DB
  4140. >16    lelong    >0        (Log, version %d, little-endian)
  4141.  
  4142. #
  4143. #
  4144. # Round Robin Database Tool by Tobias Oetiker <oetiker@ee.ethz.ch>
  4145. 0    string    RRD        RRDTool DB
  4146. >4    string    x        version %s
  4147. #----------------------------------------------------------------------
  4148. # ROOT: file(1) magic for ROOT databases
  4149. #
  4150. 0       string  root\0  ROOT file
  4151. >4      belong  x       Version %d
  4152. >33     belong  x       (Compression: %d)
  4153.  
  4154. # XXX: Weak magic.
  4155. # Alex Ott <ott@jet.msk.su>
  4156. ## Paradox file formats
  4157. #2      leshort    0x0800    Paradox 
  4158. #>0x39      byte        3    v. 3.0 
  4159. #>0x39      byte        4    v. 3.5 
  4160. #>0x39      byte        9    v. 4.x 
  4161. #>0x39      byte        10    v. 5.x 
  4162. #>0x39      byte        11    v. 5.x 
  4163. #>0x39      byte        12    v. 7.x 
  4164. #>>0x04      byte        0    indexed .DB data file 
  4165. #>>0x04      byte        1    primary index .PX file 
  4166. #>>0x04      byte        2    non-indexed .DB data file 
  4167. #>>0x04      byte        3    non-incrementing secondary index .Xnn file 
  4168. #>>0x04      byte        4    secondary index .Ynn file 
  4169. #>>0x04      byte        5    incrementing secondary index .Xnn file 
  4170. #>>0x04      byte        6    non-incrementing secondary index .XGn file 
  4171. #>>0x04      byte        7    secondary index .YGn file 
  4172. #>>>0x04      byte        8    incrementing secondary index .XGn file 
  4173.  
  4174. ## XBase database files
  4175. #0      byte       0x02    
  4176. #>8     leshort      >0
  4177. #>>12   leshort    0    FoxBase 
  4178. #!:mime    application/x-dbf
  4179. #>>>0x04    lelong        0        (no records)
  4180. #>>>0x04    lelong        >0        (%ld records)
  4181. #
  4182. #0      byte       0x03    
  4183. #!:mime    application/x-dbf
  4184. #>8     leshort      >0
  4185. #>>12   leshort    0    FoxBase+, FoxPro, dBaseIII+, dBaseIV, no memo 
  4186. #>>>0x04    lelong        0        (no records)
  4187. #>>>0x04    lelong        >0        (%ld records)
  4188. #
  4189. #0      byte       0x04    
  4190. #!:mime    application/x-dbf
  4191. #>8     leshort      >0
  4192. #>>12   leshort    0    dBASE IV no memo file 
  4193. #>>>0x04    lelong        0        (no records)
  4194. #>>>0x04    lelong        >0        (%ld records)
  4195. #
  4196. #0      byte       0x05    
  4197. #!:mime    application/x-dbf
  4198. #>8     leshort      >0
  4199. #>>12   leshort    0    dBASE V no memo file 
  4200. #>>>0x04    lelong        0        (no records)
  4201. #>>>0x04    lelong        >0        (%ld records)
  4202. #
  4203. #0      byte       0x30
  4204. #!:mime    application/x-dbf
  4205. #>8     leshort      >0
  4206. #>>12   leshort    0    Visual FoxPro 
  4207. #>>>0x04    lelong        0        (no records)
  4208. #>>>0x04    lelong        >0        (%ld records)
  4209. #
  4210. #0      byte       0x43
  4211. #!:mime    application/x-dbf
  4212. #>8     leshort      >0
  4213. #>>12   leshort    0    FlagShip with memo var size 
  4214. #>>>0x04    lelong        0        (no records)
  4215. #>>>0x04    lelong        >0        (%ld records)
  4216. #
  4217. #0      byte       0x7b
  4218. #!:mime    application/x-dbf
  4219. #>8     leshort      >0
  4220. #>>12   leshort    0    dBASEIV with memo 
  4221. #>>>0x04    lelong        0        (no records)
  4222. #>>>0x04    lelong        >0        (%ld records)
  4223. #
  4224. #0      byte       0x83    
  4225. #!:mime    application/x-dbf
  4226. #>8     leshort      >0
  4227. #>>12   leshort    0    FoxBase+, dBaseIII+ with memo 
  4228. #>>>0x04    lelong        0        (no records)
  4229. #>>>0x04    lelong        >0        (%ld records)
  4230. #
  4231. #0      byte       0x8b
  4232. #!:mime    application/x-dbf
  4233. #>8     leshort      >0
  4234. #>>12   leshort    0    dBaseIV with memo 
  4235. #>>>0x04    lelong        0        (no records)
  4236. #>>>0x04    lelong        >0        (%ld records)
  4237. #
  4238. #0      byte       0x8e    
  4239. #!:mime    application/x-dbf
  4240. #>8     leshort      >0
  4241. #>>12   leshort    0    dBaseIV with SQL Table 
  4242. #>>>0x04    lelong        0        (no records)
  4243. #>>>0x04    lelong        >0        (%ld records)
  4244. #
  4245. #0      byte       0xb3
  4246. #!:mime    application/x-dbf
  4247. #>8     leshort      >0
  4248. #>>12   leshort    0    FlagShip with .dbt memo 
  4249. #>>>0x04    lelong        0        (no records)
  4250. #>>>0x04    lelong        >0        (%ld records)
  4251. #
  4252. #0      byte       0xf5
  4253. #!:mime    application/x-dbf
  4254. #>8     leshort      >0
  4255. #>>12   leshort    0    FoxPro with memo 
  4256. #>>>0x04    lelong        0        (no records)
  4257. #>>>0x04    lelong        >0        (%ld records)
  4258. #
  4259. #0    leshort        0x0006        DBase 3 index file
  4260.  
  4261. # MS Access database
  4262. 4    string    Standard\ Jet\ DB    Microsoft Access Database
  4263. !:mime    application/x-msaccess
  4264.  
  4265. # TDB database from Samba et al - Martin Pool <mbp@samba.org>
  4266. 0    string    TDB\ file        TDB database
  4267. >32    lelong    0x2601196D        version 6, little-endian
  4268. >>36    lelong    x            hash size %d bytes
  4269.  
  4270. # SE Linux policy database
  4271. 0       lelong  0xf97cff8c      SE Linux policy
  4272. >16     lelong  x               v%d
  4273. >20     lelong  1      MLS
  4274. >24     lelong  x       %d symbols
  4275. >28     lelong  x       %d ocons
  4276.  
  4277. # ICE authority file data (Wolfram Kleff)
  4278. 2    string        ICE        ICE authority data
  4279.  
  4280. # X11 Xauthority file (Wolfram Kleff)
  4281. 10    string        MIT-MAGIC-COOKIE-1    X11 Xauthority data
  4282. 11    string        MIT-MAGIC-COOKIE-1    X11 Xauthority data
  4283. 12    string        MIT-MAGIC-COOKIE-1    X11 Xauthority data
  4284. 13    string        MIT-MAGIC-COOKIE-1    X11 Xauthority data
  4285. 14    string        MIT-MAGIC-COOKIE-1    X11 Xauthority data
  4286. 15    string        MIT-MAGIC-COOKIE-1    X11 Xauthority data
  4287. 16    string        MIT-MAGIC-COOKIE-1    X11 Xauthority data
  4288. 17    string        MIT-MAGIC-COOKIE-1    X11 Xauthority data
  4289. 18    string        MIT-MAGIC-COOKIE-1    X11 Xauthority data
  4290.  
  4291. # From: Maxime Henrion <mux@FreeBSD.org>
  4292. # PostgreSQL's custom dump format, Maxime Henrion <mux@FreeBSD.org>
  4293. 0    string        PGDMP        PostgreSQL custom database dump
  4294. >5    byte        x        - v%d
  4295. >6    byte        x        \b.%d
  4296. >5    beshort        <0x101        \b-0
  4297. >5    beshort        >0x100
  4298. >>7    byte        x        \b-%d
  4299.  
  4300. # Type: Advanced Data Format (ADF) database
  4301. # URL:  http://www.grc.nasa.gov/WWW/cgns/adf/
  4302. # From: Nicolas Chauvat <nicolas.chauvat@logilab.fr>
  4303. 0    string    @(#)ADF\ Database    CGNS Advanced Data Format
  4304.  
  4305. # Tokyo Cabinet magic data
  4306. # http://tokyocabinet.sourceforge.net/index.html
  4307. 0    string        ToKyO\ CaBiNeT\n    Tokyo Cabinet
  4308. >14    string        x            \b (%s)
  4309. >32    byte        0            \b, Hash
  4310. !:mime    application/x-tokyocabinet-hash
  4311. >32    byte        1            \b, B+ tree
  4312. !:mime    application/x-tokyocabinet-btree
  4313. >32    byte        2            \b, Fixed-length
  4314. !:mime    application/x-tokyocabinet-fixed
  4315. >32    byte        3            \b, Table
  4316. !:mime    application/x-tokyocabinet-table
  4317. >33    byte        &1            \b, [open]
  4318. >33    byte        &2            \b, [fatal]
  4319. >34    byte        x            \b, apow=%d
  4320. >35    byte        x            \b, fpow=%d
  4321. >36    byte        &0x01            \b, [large]
  4322. >36    byte        &0x02            \b, [deflate]
  4323. >36    byte        &0x04            \b, [bzip]
  4324. >36    byte        &0x08            \b, [tcbs]
  4325. >36    byte        &0x10            \b, [excodec]
  4326. >40    lequad        x            \b, bnum=%lld
  4327. >48    lequad        x            \b, rnum=%lld
  4328. >56    lequad        x            \b, fsiz=%lld
  4329.  
  4330. # Type:    QDBM Quick Database Manager
  4331. # From:    Benoit Sibaud <bsibaud@april.org>
  4332. 0    string        \\[depot\\]\n\f        Quick Database Manager, little endian
  4333. 0    string        \\[DEPOT\\]\n\f        Quick Database Manager, big endian
  4334.  
  4335. # Type:    TokyoCabinet database
  4336. # URL:    http://tokyocabinet.sourceforge.net/
  4337. # From:    Benoit Sibaud <bsibaud@april.org>
  4338. 0    string        ToKyO\ CaBiNeT\n    TokyoCabinet database
  4339. >14    string        x            (version %s)
  4340.  
  4341. #------------------------------------------------------------------------------
  4342. # diamond:  file(1) magic for Diamond system
  4343. #
  4344. # ... diamond is a multi-media mail and electronic conferencing system....
  4345. #
  4346. # XXX - I think it was either renamed Slate, or replaced by Slate....
  4347. #
  4348. #    The full deal is too long...
  4349. #0    string    <list>\n<protocol\ bbn-multimedia-format>    Diamond Multimedia Document
  4350. 0    string    =<list>\n<protocol\ bbn-m    Diamond Multimedia Document
  4351. #------------------------------------------------------------------------------
  4352. # diff:  file(1) magic for diff(1) output
  4353. #
  4354. 0    search/1    diff\         diff output text
  4355. !:mime    text/x-diff
  4356. 0    search/1    ***\         diff output text
  4357. !:mime    text/x-diff
  4358. 0    search/1    Only\ in\     diff output text
  4359. !:mime    text/x-diff
  4360. 0    search/1    Common\ subdirectories:\     diff output text
  4361. !:mime    text/x-diff
  4362.  
  4363. 0    search/1    Index:        RCS/CVS diff output text
  4364. !:mime    text/x-diff
  4365. #  Digital UNIX - Info
  4366. #
  4367. 0    string    =!<arch>\n________64E    Alpha archive
  4368. >22    string    X            -- out of date
  4369. #
  4370. # Alpha COFF Based Executables
  4371. # The stripped stuff really needs to be an 8 byte (64 bit) compare,
  4372. # but this works
  4373. 0    leshort        0x183        COFF format alpha
  4374. >22    leshort&020000    &010000        sharable library,
  4375. >22    leshort&020000    ^010000        dynamically linked,
  4376. >24    leshort        0410        pure
  4377. >24    leshort        0413        demand paged
  4378. >8    lelong        >0        executable or object module, not stripped
  4379. >8    lelong        0
  4380. >>12    lelong        0        executable or object module, stripped
  4381. >>12    lelong        >0        executable or object module, not stripped
  4382. >27     byte            >0              - version %d.
  4383. >26     byte            >0              %d-
  4384. >28     leshort         >0              %d
  4385. #
  4386. # The next is incomplete, we could tell more about this format,
  4387. # but its not worth it.
  4388. 0    leshort        0x188    Alpha compressed COFF
  4389. 0    leshort        0x18f    Alpha u-code object
  4390. #
  4391. #
  4392. # Some other interesting Digital formats,
  4393. 0    string    \377\377\177        ddis/ddif
  4394. 0    string    \377\377\174        ddis/dots archive
  4395. 0    string    \377\377\176        ddis/dtif table data
  4396. 0    string    \033c\033        LN03 output
  4397. 0    long    04553207        X image
  4398. #
  4399. 0    string    =!<PDF>!\n        profiling data file
  4400. #
  4401. # Locale data tables (MIPS and Alpha).
  4402. #
  4403. 0    short        0x0501        locale data table
  4404. >6    short        0x24        for MIPS
  4405. >6    short        0x40        for Alpha
  4406. # ATSC A/53 aka AC-3 aka Dolby Digital <ashitaka@gmx.at>
  4407. # from http://www.atsc.org/standards/a_52a.pdf
  4408. # corrections, additions, etc. are always welcome!
  4409. #
  4410. # syncword
  4411. 0       beshort         0x0b77  ATSC A/52 aka AC-3 aka Dolby Digital stream,
  4412. # fscod
  4413. >4      byte&0xc0       0x00    48 kHz,
  4414. >4      byte&0xc0       0x40    44.1 kHz,
  4415. >4      byte&0xc0       0x80    32 kHz,
  4416. # is this one used for 96 kHz?
  4417. >4      byte&0xc0       0xc0    reserved frequency,
  4418. #
  4419. >5    byte&7 = 0        \b, complete main (CM)
  4420. >5    byte&7 = 1        \b, music and effects (ME)
  4421. >5    byte&7 = 2        \b, visually impaired (VI)
  4422. >5    byte&7 = 3        \b, hearing impaired (HI)
  4423. >5    byte&7 = 4        \b, dialogue (D)
  4424. >5    byte&7 = 5        \b, commentary (C)
  4425. >5    byte&7 = 6        \b, emergency (E)
  4426. # acmod
  4427. >6      byte&0xe0       0x00    1+1 front,
  4428. >6      byte&0xe0       0x20    1 front/0 rear,
  4429. >6      byte&0xe0       0x40    2 front/0 rear,
  4430. >6      byte&0xe0       0x60    3 front/0 rear,
  4431. >6      byte&0xe0       0x80    2 front/1 rear,
  4432. >6      byte&0xe0       0xa0    3 front/1 rear,
  4433. >6      byte&0xe0       0xc0    2 front/2 rear,
  4434. >6      byte&0xe0       0xe0    3 front/2 rear,
  4435. # lfeon (these may be incorrect)
  4436. >7      byte&0x40       0x00    LFE off,
  4437. >7      byte&0x40       0x40    LFE on,
  4438. #
  4439. >4    byte&0x3e = 0x00    \b, 32 kbit/s
  4440. >4    byte&0x3e = 0x02        \b, 40 kbit/s
  4441. >4    byte&0x3e = 0x04        \b, 48 kbit/s
  4442. >4    byte&0x3e = 0x06        \b, 56 kbit/s
  4443. >4    byte&0x3e = 0x08        \b, 64 kbit/s
  4444. >4    byte&0x3e = 0x0a        \b, 80 kbit/s
  4445. >4    byte&0x3e = 0x0c        \b, 96 kbit/s
  4446. >4    byte&0x3e = 0x0e        \b, 112 kbit/s
  4447. >4    byte&0x3e = 0x10        \b, 128 kbit/s
  4448. >4    byte&0x3e = 0x12        \b, 160 kbit/s
  4449. >4    byte&0x3e = 0x14        \b, 192 kbit/s
  4450. >4    byte&0x3e = 0x16        \b, 224 kbit/s
  4451. >4    byte&0x3e = 0x18        \b, 256 kbit/s
  4452. >4    byte&0x3e = 0x1a        \b, 320 kbit/s
  4453. >4    byte&0x3e = 0x1c        \b, 384 kbit/s
  4454. >4    byte&0x3e = 0x1e        \b, 448 kbit/s
  4455. >4    byte&0x3e = 0x20        \b, 512 kbit/s
  4456. >4    byte&0x3e = 0x22        \b, 576 kbit/s
  4457. >4    byte&0x3e = 0x24        \b, 640 kbit/s
  4458. # dsurmod (these may be incorrect)
  4459. >6      beshort&0x0180  0x0000  Dolby Surround not indicated
  4460. >6      beshort&0x0180  0x0080  not Dolby Surround encoded
  4461. >6      beshort&0x0180  0x0100  Dolby Surround encoded
  4462. >6      beshort&0x0180  0x0180  reserved Dolby Surround mode
  4463.  
  4464. #------------------------------------------------------------------------------
  4465. # dump:  file(1) magic for dump file format--for new and old dump filesystems
  4466. #
  4467. # We specify both byte orders in order to recognize byte-swapped dumps.
  4468. #
  4469. 24    belong    60012        new-fs dump file (big endian),
  4470. >4    bedate    x        Previous dump %s,
  4471. >8    bedate    x        This dump %s,
  4472. >12    belong    >0        Volume %ld,
  4473. >692    belong    0        Level zero, type:
  4474. >692    belong    >0        Level %d, type:
  4475. >0    belong    1        tape header,
  4476. >0    belong    2        beginning of file record,
  4477. >0    belong    3        map of inodes on tape,
  4478. >0    belong    4        continuation of file record,
  4479. >0    belong    5        end of volume,
  4480. >0    belong    6        map of inodes deleted,
  4481. >0    belong    7        end of medium (for floppy),
  4482. >676    string    >\0        Label %s,
  4483. >696    string    >\0        Filesystem %s,
  4484. >760    string    >\0        Device %s,
  4485. >824    string    >\0        Host %s,
  4486. >888    belong    >0        Flags %x
  4487.  
  4488. 24    belong    60011        old-fs dump file (big endian),
  4489. #>4    bedate    x        Previous dump %s,
  4490. #>8    bedate    x        This dump %s,
  4491. >12    belong    >0        Volume %ld,
  4492. >692    belong    0        Level zero, type:
  4493. >692    belong    >0        Level %d, type:
  4494. >0    belong    1        tape header,
  4495. >0    belong    2        beginning of file record,
  4496. >0    belong    3        map of inodes on tape,
  4497. >0    belong    4        continuation of file record,
  4498. >0    belong    5        end of volume,
  4499. >0    belong    6        map of inodes deleted,
  4500. >0    belong    7        end of medium (for floppy),
  4501. >676    string    >\0        Label %s,
  4502. >696    string    >\0        Filesystem %s,
  4503. >760    string    >\0        Device %s,
  4504. >824    string    >\0        Host %s,
  4505. >888    belong    >0        Flags %x
  4506.  
  4507. 24    lelong    60012        new-fs dump file (little endian),
  4508. >4    ledate    x        This dump %s,
  4509. >8    ledate    x        Previous dump %s,
  4510. >12    lelong    >0        Volume %ld,
  4511. >692    lelong    0        Level zero, type:
  4512. >692    lelong    >0        Level %d, type:
  4513. >0    lelong    1        tape header,
  4514. >0    lelong    2        beginning of file record,
  4515. >0    lelong    3        map of inodes on tape,
  4516. >0    lelong    4        continuation of file record,
  4517. >0    lelong    5        end of volume,
  4518. >0    lelong    6        map of inodes deleted,
  4519. >0    lelong    7        end of medium (for floppy),
  4520. >676    string    >\0        Label %s,
  4521. >696    string    >\0        Filesystem %s,
  4522. >760    string    >\0        Device %s,
  4523. >824    string    >\0        Host %s,
  4524. >888    lelong    >0        Flags %x
  4525.  
  4526. 24    lelong    60011        old-fs dump file (little endian),
  4527. #>4    ledate    x        Previous dump %s,
  4528. #>8    ledate    x        This dump %s,
  4529. >12    lelong    >0        Volume %ld,
  4530. >692    lelong    0        Level zero, type:
  4531. >692    lelong    >0        Level %d, type:
  4532. >0    lelong    1        tape header,
  4533. >0    lelong    2        beginning of file record,
  4534. >0    lelong    3        map of inodes on tape,
  4535. >0    lelong    4        continuation of file record,
  4536. >0    lelong    5        end of volume,
  4537. >0    lelong    6        map of inodes deleted,
  4538. >0    lelong    7        end of medium (for floppy),
  4539. >676    string    >\0        Label %s,
  4540. >696    string    >\0        Filesystem %s,
  4541. >760    string    >\0        Device %s,
  4542. >824    string    >\0        Host %s,
  4543. >888    lelong    >0        Flags %x
  4544.  
  4545. 18    leshort    60011        old-fs dump file (16-bit, assuming PDP-11 endianness),
  4546. >2    medate    x        Previous dump %s,
  4547. >6    medate    x        This dump %s,
  4548. >10    leshort    >0        Volume %ld,
  4549. >0    leshort    1        tape header.
  4550. >0    leshort    2        beginning of file record.
  4551. >0    leshort    3        map of inodes on tape.
  4552. >0    leshort    4        continuation of file record.
  4553. >0    leshort    5        end of volume.
  4554. >0    leshort    6        map of inodes deleted.
  4555. >0    leshort    7        end of medium (for floppy).
  4556.  
  4557. 24    belong    0x19540119    new-fs dump file (ufs2, big endian),
  4558. >896    beqdate    x        Previous dump %s,
  4559. >904    beqdate    x        This dump %s,
  4560. >12    belong    >0        Volume %ld,
  4561. >692    belong    0        Level zero, type:
  4562. >692    belong    >0        Level %d, type:
  4563. >0    belong    1        tape header,
  4564. >0    belong    2        beginning of file record,
  4565. >0    belong    3        map of inodes on tape,
  4566. >0    belong    4        continuation of file record,
  4567. >0    belong    5        end of volume,
  4568. >0    belong    6        map of inodes deleted,
  4569. >0    belong    7        end of medium (for floppy),
  4570. >676    string    >\0        Label %s,
  4571. >696    string    >\0        Filesystem %s,
  4572. >760    string    >\0        Device %s,
  4573. >824    string    >\0        Host %s,
  4574. >888    belong    >0        Flags %x
  4575.  
  4576. 24    lelong    0x19540119    new-fs dump file (ufs2, little endian),
  4577. >896    leqdate    x        This dump %s,
  4578. >904    leqdate    x        Previous dump %s,
  4579. >12    lelong    >0        Volume %ld,
  4580. >692    lelong    0        Level zero, type:
  4581. >692    lelong    >0        Level %d, type:
  4582. >0    lelong    1        tape header,
  4583. >0    lelong    2        beginning of file record,
  4584. >0    lelong    3        map of inodes on tape,
  4585. >0    lelong    4        continuation of file record,
  4586. >0    lelong    5        end of volume,
  4587. >0    lelong    6        map of inodes deleted,
  4588. >0    lelong    7        end of medium (for floppy),
  4589. >676    string    >\0        Label %s,
  4590. >696    string    >\0        Filesystem %s,
  4591. >760    string    >\0        Device %s,
  4592. >824    string    >\0        Host %s,
  4593. >888    lelong    >0        Flags %x
  4594.  
  4595. #------------------------------------------------------------------------------
  4596. # Dyadic: file(1) magic for Dyalog APL.
  4597. #
  4598. 0     byte    0xaa
  4599. >1    byte    <4        Dyalog APL
  4600. >>1    byte    0x00        incomplete workspace
  4601. >>1    byte    0x01        component file
  4602. >>1    byte    0x02        external variable
  4603. >>1    byte    0x03        workspace
  4604. >>2    byte    x        version %d
  4605. >>3    byte    x        .%d
  4606.  
  4607. #------------------------------------------------------------------------------
  4608. # T602 editor documents 
  4609. # by David Necas <yeti@physics.muni.cz>
  4610. 0    string    @CT\     T602 document data,
  4611. >4    string    0    Kamenicky
  4612. >4    string    1    CP 852
  4613. >4    string    2    KOI8-CS
  4614. >4    string    >2    unknown encoding
  4615.  
  4616. # Vi IMproved Encrypted file 
  4617. # by David Necas <yeti@physics.muni.cz>
  4618. 0    string    VimCrypt~    Vim encrypted file data
  4619. # Vi IMproved Swap file
  4620. # by Sven Wegener <swegener@gentoo.org>
  4621. 0    string    b0VIM\         Vim swap file
  4622. >&0    string    >\0        \b, version %s
  4623.  
  4624. #------------------------------------------------------------------------------
  4625. # efi:  file(1) magic for Universal EFI binaries
  4626.  
  4627. 0    lelong    0x0ef1fab9
  4628. >4    lelong    1        Universal EFI binary with 1 architecture
  4629. >>&0    lelong    7        \b, i386
  4630. >>&0    lelong    0x01000007    \b, x86_64
  4631. >4    lelong    2        Universal EFI binary with 2 architectures
  4632. >>&0    lelong    7        \b, i386
  4633. >>&0    lelong    0x01000007    \b, x86_64
  4634. >>&20    lelong    7        \b, i386
  4635. >>&20    lelong    0x01000007    \b, x86_64
  4636. >4    lelong    >2        Universal EFI binary with %ld architectures
  4637.  
  4638. #------------------------------------------------------------------------------
  4639. # elf:  file(1) magic for ELF executables
  4640. #
  4641. # We have to check the byte order flag to see what byte order all the
  4642. # other stuff in the header is in.
  4643. #
  4644. # What're the correct byte orders for the nCUBE and the Fujitsu VPP500?
  4645. #
  4646. # Created by: unknown
  4647. # Modified by (1): Daniel Quinlan <quinlan@yggdrasil.com>
  4648. # Modified by (2): Peter Tobias <tobias@server.et-inf.fho-emden.de> (core support)
  4649. # Modified by (3): Christian 'Dr. Disk' Hechelmann <drdisk@ds9.au.s.shuttle.de> (fix of core support)
  4650. # Modified by (4): <gerardo.cacciari@gmail.com> (VMS Itanium)
  4651. # Modified by (5): Matthias Urlichs <smurf@debian.org> (Listing of many architectures)
  4652. 0    string        \177ELF        ELF
  4653. >4    byte        0        invalid class
  4654. >4    byte        1        32-bit
  4655. >4    byte        2        64-bit
  4656. >5    byte        0        invalid byte order
  4657. >5    byte        1        LSB
  4658. >>16    leshort        0        no file type,
  4659. !:strength *2
  4660. !:mime    application/octet-stream
  4661. >>16    leshort        1        relocatable,
  4662. !:mime    application/x-object
  4663. >>16    leshort        2        executable,
  4664. !:mime    application/x-executable
  4665. >>16    leshort        3        shared object,
  4666. !:mime    application/x-sharedlib
  4667. >>16    leshort        4        core file
  4668. !:mime    application/x-coredump
  4669. # Core file detection is not reliable.
  4670. #>>>(0x38+0xcc) string    >\0        of '%s'
  4671. #>>>(0x38+0x10) lelong    >0        (signal %d),
  4672. >>16    leshort        &0xff00        processor-specific,
  4673. >>18    leshort        0        no machine,
  4674. >>18    leshort        1        AT&T WE32100 - invalid byte order,
  4675. >>18    leshort        2        SPARC - invalid byte order,
  4676. >>18    leshort        3        Intel 80386,
  4677. >>18    leshort        4        Motorola
  4678. >>>36    lelong        &0x01000000    68000 - invalid byte order,
  4679. >>>36    lelong        &0x00810000    CPU32 - invalid byte order,
  4680. >>>36    lelong        0        68020 - invalid byte order,
  4681. >>18    leshort        5        Motorola 88000 - invalid byte order,
  4682. >>18    leshort        6        Intel 80486,
  4683. >>18    leshort        7        Intel 80860,
  4684. # The official e_machine number for MIPS is now #8, regardless of endianness.
  4685. # The second number (#10) will be deprecated later. For now, we still
  4686. # say something if #10 is encountered, but only gory details for #8.
  4687. >>18    leshort        8        MIPS,
  4688. >>>36    lelong        &0x20        N32
  4689. >>18    leshort        10        MIPS,
  4690. >>>36    lelong        &0x20        N32
  4691. >>18    leshort        8
  4692. # only for 32-bit
  4693. >>>4    byte        1
  4694. >>>>36  lelong&0xf0000000    0x00000000    MIPS-I
  4695. >>>>36  lelong&0xf0000000    0x10000000    MIPS-II
  4696. >>>>36  lelong&0xf0000000    0x20000000    MIPS-III
  4697. >>>>36  lelong&0xf0000000    0x30000000    MIPS-IV
  4698. >>>>36  lelong&0xf0000000    0x40000000    MIPS-V
  4699. >>>>36  lelong&0xf0000000    0x50000000    MIPS32
  4700. >>>>36  lelong&0xf0000000    0x60000000    MIPS64
  4701. >>>>36  lelong&0xf0000000    0x70000000    MIPS32 rel2
  4702. >>>>36  lelong&0xf0000000    0x80000000    MIPS64 rel2
  4703. # only for 64-bit
  4704. >>>4    byte        2
  4705. >>>>48  lelong&0xf0000000    0x00000000    MIPS-I
  4706. >>>>48  lelong&0xf0000000    0x10000000    MIPS-II
  4707. >>>>48  lelong&0xf0000000    0x20000000    MIPS-III
  4708. >>>>48  lelong&0xf0000000    0x30000000    MIPS-IV
  4709. >>>>48  lelong&0xf0000000    0x40000000    MIPS-V
  4710. >>>>48  lelong&0xf0000000    0x50000000    MIPS32
  4711. >>>>48  lelong&0xf0000000    0x60000000    MIPS64
  4712. >>>>48  lelong&0xf0000000    0x70000000    MIPS32 rel2
  4713. >>>>48  lelong&0xf0000000    0x80000000    MIPS64 rel2
  4714. >>18    leshort        9        Amdahl - invalid byte order,
  4715. >>18    leshort        10        MIPS (deprecated),
  4716. >>18    leshort        11        RS6000 - invalid byte order,
  4717. >>18    leshort        15        PA-RISC - invalid byte order,
  4718. >>>50    leshort        0x0214        2.0
  4719. >>>48    leshort        &0x0008        (LP64),
  4720. >>18    leshort        16        nCUBE,
  4721. >>18    leshort        17        Fujitsu VPP500,
  4722. >>18    leshort        18        SPARC32PLUS - invalid byte order,
  4723. >>18    leshort        20        PowerPC,
  4724. >>18    leshort        22        IBM S/390,
  4725. >>18    leshort        36        NEC V800,
  4726. >>18    leshort        37        Fujitsu FR20,
  4727. >>18    leshort        38        TRW RH-32,
  4728. >>18    leshort        39        Motorola RCE,
  4729. >>18    leshort        40        ARM,
  4730. >>18    leshort        41        Alpha,
  4731. >>18    leshort        0xa390        IBM S/390 (obsolete),
  4732. >>18    leshort        42        Renesas SH,
  4733. >>18    leshort        43        SPARC V9 - invalid byte order,
  4734. >>18    leshort        44        Siemens Tricore Embedded Processor,
  4735. >>18    leshort        45        Argonaut RISC Core, Argonaut Technologies Inc.,
  4736. >>18    leshort        46        Renesas H8/300,
  4737. >>18    leshort        47        Renesas H8/300H,
  4738. >>18    leshort        48        Renesas H8S,
  4739. >>18    leshort        49        Renesas H8/500,
  4740. >>18    leshort        50        IA-64,
  4741. >>18    leshort        51        Stanford MIPS-X,
  4742. >>18    leshort        52        Motorola Coldfire,
  4743. >>18    leshort        53        Motorola M68HC12,
  4744. >>18    leshort        54        Fujitsu MMA,
  4745. >>18    leshort        55        Siemens PCP,
  4746. >>18    leshort        56        Sony nCPU,
  4747. >>18    leshort        57        Denso NDR1,
  4748. >>18    leshort        58        Start*Core,
  4749. >>18    leshort        59        Toyota ME16,
  4750. >>18    leshort        60        ST100,
  4751. >>18    leshort        61        Tinyj emb.,
  4752. >>18    leshort        62        x86-64,
  4753. >>18    leshort        63        Sony DSP,
  4754. >>18    leshort        66        FX66,
  4755. >>18    leshort        67        ST9+ 8/16 bit,
  4756. >>18    leshort        68        ST7 8 bit,
  4757. >>18    leshort        69        MC68HC16,
  4758. >>18    leshort        70        MC68HC11,
  4759. >>18    leshort        71        MC68HC08,
  4760. >>18    leshort        72        MC68HC05,
  4761. >>18    leshort        73        SGI SVx,
  4762. >>18    leshort        74        ST19 8 bit,
  4763. >>18    leshort        75        Digital VAX,
  4764. >>18    leshort        76        Axis cris,
  4765. >>18    leshort        77        Infineon 32-bit embedded,
  4766. >>18    leshort        78        Element 14 64-bit DSP,
  4767. >>18    leshort        79        LSI Logic 16-bit DSP,
  4768. >>18    leshort        80        MMIX,
  4769. >>18    leshort        81        Harvard machine-independent,
  4770. >>18    leshort        82        SiTera Prism,
  4771. >>18    leshort        83        Atmel AVR 8-bit,
  4772. >>18    leshort        84        Fujitsu FR30,
  4773. >>18    leshort        85        Mitsubishi D10V,
  4774. >>18    leshort        86        Mitsubishi D30V,
  4775. >>18    leshort        87        NEC v850,
  4776. >>18    leshort        88        Renesas M32R,
  4777. >>18    leshort        89        Matsushita MN10300,
  4778. >>18    leshort        90        Matsushita MN10200,
  4779. >>18    leshort        91        picoJava,
  4780. >>18    leshort        92        OpenRISC,
  4781. >>18    leshort        93        ARC Cores Tangent-A5,
  4782. >>18    leshort        94        Tensilica Xtensa,
  4783. >>18    leshort        97        NatSemi 32k,
  4784. >>18    leshort        106        Analog Devices Blackfin,
  4785. >>18    leshort        113        Altera Nios II,
  4786. >>18    leshort        0xae        META,
  4787. >>18    leshort        0x3426        OpenRISC (obsolete),
  4788. >>18    leshort        0x8472        OpenRISC (obsolete),
  4789. >>18    leshort        0x9026        Alpha (unofficial),
  4790. >>20    lelong        0        invalid version
  4791. >>20    lelong        1        version 1
  4792. >>36    lelong        1        MathCoPro/FPU/MAU Required
  4793. >5    byte        2        MSB
  4794. >>16    beshort        0        no file type,
  4795. !:mime    application/octet-stream
  4796. >>16    beshort        1        relocatable,
  4797. !:mime    application/x-object
  4798. >>16    beshort        2        executable,
  4799. !:mime    application/x-executable
  4800. >>16    beshort        3        shared object,
  4801. !:mime    application/x-sharedlib
  4802. >>16    beshort        4        core file,
  4803. !:mime    application/x-coredump
  4804. #>>>(0x38+0xcc) string    >\0        of '%s'
  4805. #>>>(0x38+0x10) belong    >0        (signal %d),
  4806. >>16    beshort        &0xff00        processor-specific,
  4807. >>18    beshort        0        no machine,
  4808. >>18    beshort        1        AT&T WE32100,
  4809. >>18    beshort        2        SPARC,
  4810. >>18    beshort        3        Intel 80386 - invalid byte order,
  4811. >>18    beshort        4        Motorola
  4812. >>>36    belong        &0x01000000    68000,
  4813. >>>36    belong        &0x00810000    CPU32,
  4814. >>>36    belong        0        68020,
  4815. >>18    beshort        5        Motorola 88000,
  4816. >>18    beshort        6        Intel 80486 - invalid byte order,
  4817. >>18    beshort        7        Intel 80860,
  4818. # only for MIPS - see comment in little-endian section above.
  4819. >>18    beshort        8        MIPS,
  4820. >>>36    belong        &0x20        N32
  4821. >>18    beshort        10        MIPS,
  4822. >>>36    belong        &0x20        N32
  4823. >>18    beshort        8
  4824. # only for 32-bit
  4825. >>>4    byte        1
  4826. >>>>36  belong&0xf0000000    0x00000000    MIPS-I
  4827. >>>>36  belong&0xf0000000    0x10000000    MIPS-II
  4828. >>>>36  belong&0xf0000000    0x20000000    MIPS-III
  4829. >>>>36  belong&0xf0000000    0x30000000    MIPS-IV
  4830. >>>>36  belong&0xf0000000    0x40000000    MIPS-V
  4831. >>>>36  belong&0xf0000000    0x50000000    MIPS32
  4832. >>>>36  belong&0xf0000000    0x60000000    MIPS64
  4833. >>>>36  belong&0xf0000000    0x70000000    MIPS32 rel2
  4834. >>>>36  belong&0xf0000000    0x80000000    MIPS64 rel2
  4835. # only for 64-bit
  4836. >>>4    byte        2
  4837. >>>>48    belong&0xf0000000    0x00000000    MIPS-I
  4838. >>>>48    belong&0xf0000000    0x10000000    MIPS-II
  4839. >>>>48    belong&0xf0000000    0x20000000    MIPS-III
  4840. >>>>48    belong&0xf0000000    0x30000000    MIPS-IV
  4841. >>>>48    belong&0xf0000000    0x40000000    MIPS-V
  4842. >>>>48    belong&0xf0000000    0x50000000    MIPS32
  4843. >>>>48    belong&0xf0000000    0x60000000    MIPS64
  4844. >>>>48    belong&0xf0000000    0x70000000    MIPS32 rel2
  4845. >>>>48    belong&0xf0000000    0x80000000    MIPS64 rel2
  4846. >>18    beshort        9        Amdahl,
  4847. >>18    beshort        10        MIPS (deprecated),
  4848. >>18    beshort        11        RS6000,
  4849. >>18    beshort        15        PA-RISC
  4850. >>>50    beshort        0x0214        2.0
  4851. >>>48    beshort        &0x0008        (LP64)
  4852. >>18    beshort        16        nCUBE,
  4853. >>18    beshort        17        Fujitsu VPP500,
  4854. >>18    beshort        18        SPARC32PLUS,
  4855. >>>36    belong&0xffff00    0x000100    V8+ Required,
  4856. >>>36    belong&0xffff00    0x000200    Sun UltraSPARC1 Extensions Required,
  4857. >>>36    belong&0xffff00    0x000400    HaL R1 Extensions Required,
  4858. >>>36    belong&0xffff00    0x000800    Sun UltraSPARC3 Extensions Required,
  4859. >>18    beshort        20        PowerPC or cisco 4500,
  4860. >>18    beshort        21        64-bit PowerPC or cisco 7500,
  4861. >>18    beshort        22        IBM S/390,
  4862. >>18    beshort        23        Cell SPU,
  4863. >>18    beshort        24        cisco SVIP,
  4864. >>18    beshort        25        cisco 7200,
  4865. >>18    beshort        36        NEC V800 or cisco 12000,
  4866. >>18    beshort        37        Fujitsu FR20,
  4867. >>18    beshort        38        TRW RH-32,
  4868. >>18    beshort        39        Motorola RCE,
  4869. >>18    beshort        40        ARM,
  4870. >>18    beshort        41        Alpha,
  4871. >>18    beshort        42        Renesas SH,
  4872. >>18    beshort        43        SPARC V9,
  4873. >>>48    belong&0xffff00    0x000200    Sun UltraSPARC1 Extensions Required,
  4874. >>>48    belong&0xffff00    0x000400    HaL R1 Extensions Required,
  4875. >>>48    belong&0xffff00    0x000800    Sun UltraSPARC3 Extensions Required,
  4876. >>>48    belong&0x3    0        total store ordering,
  4877. >>>48    belong&0x3    1        partial store ordering,
  4878. >>>48    belong&0x3    2        relaxed memory ordering,
  4879. >>18    beshort        44        Siemens Tricore Embedded Processor,
  4880. >>18    beshort        45        Argonaut RISC Core, Argonaut Technologies Inc.,
  4881. >>18    beshort        46        Renesas H8/300,
  4882. >>18    beshort        47        Renesas H8/300H,
  4883. >>18    beshort        48        Renesas H8S,
  4884. >>18    beshort        49        Renesas H8/500,
  4885. >>18    beshort        50        IA-64,
  4886. >>18    beshort        51        Stanford MIPS-X,
  4887. >>18    beshort        52        Motorola Coldfire,
  4888. >>18    beshort        53        Motorola M68HC12,
  4889. >>18    beshort        73        Cray NV1,
  4890. >>18    beshort        75        Digital VAX,
  4891. >>18    beshort        88        Renesas M32R,
  4892. >>18    leshort        92        OpenRISC,
  4893. >>18    leshort        0x3426        OpenRISC (obsolete),
  4894. >>18    leshort        0x8472        OpenRISC (obsolete),
  4895. >>18    beshort        94        Tensilica Xtensa,
  4896. >>18    beshort        97        NatSemi 32k,
  4897. >>18    beshort        0x18ad        AVR32 (unofficial),
  4898. >>18    beshort        0x9026        Alpha (unofficial),
  4899. >>18    beshort        0xa390        IBM S/390 (obsolete),
  4900. >>20    belong        0        invalid version
  4901. >>20    belong        1        version 1
  4902. >>36    belong        1        MathCoPro/FPU/MAU Required
  4903. # Up to now only 0, 1 and 2 are defined; I've seen a file with 0x83, it seemed
  4904. # like proper ELF, but extracting the string had bad results.
  4905. >4      byte            <0x80
  4906. >>8    string        >\0        (%s)
  4907. >8    string        \0
  4908. >>7    byte        0        (SYSV)
  4909. >>7    byte        1        (HP-UX)
  4910. >>7    byte        2        (NetBSD)
  4911. >>7    byte        3        (GNU/Linux)
  4912. >>7    byte        4        (GNU/Hurd)
  4913. >>7    byte        5        (86Open)
  4914. >>7    byte        6        (Solaris)
  4915. >>7    byte        7        (Monterey)
  4916. >>7    byte        8        (IRIX)
  4917. >>7    byte        9        (FreeBSD)
  4918. >>7    byte        10        (Tru64)
  4919. >>7    byte        11        (Novell Modesto)
  4920. >>7    byte        12        (OpenBSD)
  4921. >8      string          \2
  4922. >>7     byte            13              (OpenVMS)
  4923. >>7    byte        97        (ARM)
  4924. >>7    byte        255        (embedded)
  4925.  
  4926. #------------------------------------------------------------------------------
  4927. # encore:  file(1) magic for Encore machines
  4928. #
  4929. # XXX - needs to have the byte order specified (NS32K was little-endian,
  4930. # dunno whether they run the 88K in little-endian mode or not).
  4931. #
  4932. 0    short        0x154        Encore
  4933. >20    short        0x107        executable
  4934. >20    short        0x108        pure executable
  4935. >20    short        0x10b        demand-paged executable
  4936. >20    short        0x10f        unsupported executable
  4937. >12    long        >0        not stripped
  4938. >22    short        >0        - version %ld
  4939. >22    short        0        -
  4940. #>4    date        x        stamp %s
  4941. 0    short        0x155        Encore unsupported executable
  4942. >12    long        >0        not stripped
  4943. >22    short        >0        - version %ld
  4944. >22    short        0        -
  4945. #>4    date        x        stamp %s
  4946. #------------------------------------------------------------------------------
  4947. # EPOC : file(1) magic for EPOC documents [Psion Series 5/Osaris/Geofox 1]
  4948. # Stefan Praszalowicz (hpicollo@worldnet.fr)
  4949. # Useful information for improving this file can be found at:
  4950. # http://software.frodo.looijaard.name/psiconv/formats/Index.html
  4951. 0    lelong        0x10000037
  4952. >4    lelong        0x1000006D
  4953. >>8    lelong        0x1000007F    Psion Word
  4954. >>8    lelong        0x10000088    Psion Sheet
  4955. >>8    lelong        0x1000007D    Psion Sketch
  4956. >>8    lelong        0x10000085    Psion TextEd
  4957.  
  4958. #------------------------------------------------------------------------------
  4959. # erlang:  file(1) magic for Erlang JAM and BEAM files
  4960. # URL:  http://www.erlang.org/faq/x779.html#AEN812
  4961.  
  4962. # OTP R3-R4
  4963. 0    string    \0177BEAM!    Old Erlang BEAM file
  4964. >6    short    >0        - version %d
  4965.  
  4966. # OTP R5 and onwards
  4967. 0    string    FOR1
  4968. >8    string    BEAM        Erlang BEAM file
  4969.  
  4970. # 4.2 version may have a copyright notice!
  4971. 4    string    Tue\ Jan\ 22\ 14:32:44\ MET\ 1991    Erlang JAM file - version 4.2
  4972. 79    string    Tue\ Jan\ 22\ 14:32:44\ MET\ 1991    Erlang JAM file - version 4.2
  4973.  
  4974. 4    string    1.0\ Fri\ Feb\ 3\ 09:55:56\ MET\ 1995    Erlang JAM file - version 4.3
  4975.  
  4976. #------------------------------------------------------------------------------
  4977. # ESRI Shapefile format (.shp .shx .dbf=DBaseIII)
  4978. # Based on info from
  4979. # <URL:http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf>
  4980. 0    belong    9994    ESRI Shapefile
  4981. >4    belong    =0
  4982. >8    belong    =0
  4983. >12    belong    =0
  4984. >16    belong    =0
  4985. >20    belong    =0
  4986. >28    lelong    x    version %d
  4987. >24    belong    x    length %d
  4988. >32    lelong    =0    type Null Shape
  4989. >32    lelong    =1    type Point
  4990. >32    lelong    =3    type PolyLine
  4991. >32    lelong    =5    type Polygon
  4992. >32    lelong    =8    type MultiPoint
  4993. >32    lelong    =11    type PointZ
  4994. >32    lelong    =13    type PolyLineZ
  4995. >32    lelong    =15    type PolygonZ
  4996. >32    lelong    =18    type MultiPointZ
  4997. >32    lelong    =21    type PointM
  4998. >32    lelong    =23    type PolyLineM
  4999. >32    lelong    =25    type PolygonM
  5000. >32    lelong    =28    type MultiPointM
  5001. >32    lelong    =31    type MultiPatch
  5002.  
  5003. #------------------------------------------------------------------------------
  5004. # fcs: file(1) magic for FCS (Flow Cytometry Standard) data files
  5005. # From Roger Leigh <roger@whinlatter.uklinux.net>
  5006. 0       string          FCS1.0          Flow Cytometry Standard (FCS) data, version 1.0
  5007. 0       string          FCS2.0          Flow Cytometry Standard (FCS) data, version 2.0
  5008. 0       string          FCS3.0          Flow Cytometry Standard (FCS) data, version 3.0
  5009.  
  5010.  
  5011. #------------------------------------------------------------------------------
  5012. # filesystems:  file(1) magic for different filesystems
  5013. #
  5014. 0    string    \366\366\366\366    PC formatted floppy with no filesystem
  5015. # Sun disk labels
  5016. # From /usr/include/sun/dklabel.h:
  5017. 0774    beshort        0xdabe        
  5018. # modified by Joerg Jenderek, because original test
  5019. # succeeds for Cabinet archive dao360.dl_ with negative blocks
  5020. >0770    long        >0        Sun disk label
  5021. >>0    string        x        '%s
  5022. >>>31    string        >\0        \b%s
  5023. >>>>63    string        >\0        \b%s
  5024. >>>>>95    string        >\0        \b%s
  5025. >>0    string        x        \b'
  5026. >>0734    short        >0        %d rpm,
  5027. >>0736    short        >0        %d phys cys,
  5028. >>0740    short        >0        %d alts/cyl,
  5029. >>0746    short        >0        %d interleave,
  5030. >>0750    short        >0        %d data cyls,
  5031. >>0752    short        >0        %d alt cyls,
  5032. >>0754    short        >0        %d heads/partition,
  5033. >>0756    short        >0        %d sectors/track,
  5034. >>0764    long        >0        start cyl %ld,
  5035. >>0770    long        x        %ld blocks
  5036. # Is there a boot block written 1 sector in?
  5037. >512    belong&077777777    0600407    \b, boot block present
  5038. # Joerg Jenderek: Smart Boot Manager backup file is 41 byte header + first sectors of disc
  5039. # (http://btmgr.sourceforge.net/docs/user-guide-3.html)
  5040. 0        string    SBMBAKUP_    Smart Boot Manager backup file
  5041. >9        string    x        \b, version %-5.5s
  5042. >>14        string    =_        
  5043. >>>15        string    x        %-.1s
  5044. >>>>16        string    =_        \b.
  5045. >>>>>17        string    x        \b%-.1s
  5046. >>>>>>18    string    =_        \b.
  5047. >>>>>>>19    string    x        \b%-.1s
  5048. >>>22        ubyte    0        
  5049. >>>>21        ubyte    x        \b, from drive 0x%x
  5050. >>>22        ubyte    >0        
  5051. >>>>21        string    x        \b, from drive %s
  5052.  
  5053. # Joerg Jenderek
  5054. # DOS Emulator image is 128 byte, null right padded header + harddisc image
  5055. 0    string    DOSEMU\0            
  5056. >0x27E    leshort    0xAA55            
  5057. #offset is 128
  5058. >>19    ubyte    128            
  5059. >>>(19.b-1)    ubyte    0x0    DOS Emulator image
  5060. >>>>7    ulelong    >0        \b, %u heads
  5061. >>>>11    ulelong    >0        \b, %d sectors/track
  5062. >>>>15    ulelong    >0        \b, %d cylinders
  5063.  
  5064. # updated by Joerg Jenderek at Sep 2007
  5065. # only for sector sizes with 512 or more Bytes
  5066. 0x1FE    leshort    0xAA55            x86 boot sector
  5067. # to do also for sectors < than 512 Bytes and some other files, GRR
  5068. #30    search/481    \x55\xAA    x86 boot sector
  5069. # not for BeOS floppy 1440k, MBRs
  5070. #(11.s-2) uleshort    0xAA55        x86 boot sector
  5071. >2    string    OSBS            \b, OS/BS MBR
  5072. # J\xf6rg Jenderek <joerg dot jenderek at web dot de>
  5073. >0x8C    string    Invalid\ partition\ table    \b, MS-DOS MBR
  5074. # dr-dos with some upper-, lowercase variants
  5075. >0x9D    string    Invalid\ partition\ table$    
  5076. >>181    string    No\ Operating\ System$        
  5077. >>>201    string    Operating\ System\ load\ error$    \b, DR-DOS MBR, Version 7.01 to 7.03
  5078. >0x9D    string    Invalid\ partition\ table$    
  5079. >>181    string    No\ operating\ system$        
  5080. >>>201    string    Operating\ system\ load\ error$    \b, DR-DOS MBR, Version 7.01 to 7.03
  5081. >342    string    Invalid\ partition\ table$    
  5082. >>366    string    No\ operating\ system$        
  5083. >>>386    string    Operating\ system\ load\ error$    \b, DR-DOS MBR, version 7.01 to 7.03
  5084. >295    string    NEWLDR\0                
  5085. >>302    string    Bad\ PT\ $                
  5086. >>>310    string    No\ OS\ $                
  5087. >>>>317    string    OS\ load\ err$                
  5088. >>>>>329    string    Moved\ or\ missing\ IBMBIO.LDR\n\r    
  5089. >>>>>>358    string    Press\ any\ key\ to\ continue.\n\r$    
  5090. >>>>>>>387    string    Copyright\ (c)\ 1984,1998    
  5091. >>>>>>>>411    string    Caldera\ Inc.\0        \b, DR-DOS MBR (IBMBIO.LDR)
  5092. >0x10F    string    Ung\201ltige\ Partitionstabelle    \b, MS-DOS MBR, german version 4.10.1998, 4.10.2222
  5093. >>0x1B8    ubelong    >0                \b, Serial 0x%-.4x
  5094. >0x8B    string    Ung\201ltige\ Partitionstabelle    \b, MS-DOS MBR, german version 5.00 to 4.00.950
  5095. >271    string    Invalid\ partition\ table\0        
  5096. >>295    string    Error\ loading\ operating\ system\0    
  5097. >>>326    string    Missing\ operating\ system\0        \b, mbr
  5098. #
  5099. >139    string    Invalid\ partition\ table\0        
  5100. >>163    string    Error\ loading\ operating\ system\0    
  5101. >>>194    string    Missing\ operating\ system\0        \b, Microsoft Windows XP mbr
  5102. # http://www.heise.de/ct/05/09/006/ page 184
  5103. #HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices\DosDevices\?:=Serial4Bytes+8Bytes
  5104. >>>>0x1B8    ulelong    >0                \b,Serial 0x%-.4x
  5105. >300    string    Invalid\ partition\ table\0    
  5106. >>324    string    Error\ loading\ operating\ system\0
  5107. >>>355    string    Missing\ operating\ system\0        \b, Microsoft Windows XP MBR
  5108. #??>>>389    string    Invalid\ system\ disk        
  5109. >>>>0x1B8    ulelong    >0                \b, Serial 0x%-.4x
  5110. >300    string    Ung\201ltige\ Partitionstabelle
  5111. #split string to avoid error: String too long
  5112. >>328    string    Fehler\ beim\ Laden\     
  5113. >>>346    string    des\ Betriebssystems    
  5114. >>>>366    string    Betriebssystem\ nicht\ vorhanden    \b, Microsoft Windows XP MBR (german)
  5115. >>>>>0x1B8    ulelong    >0                \b, Serial 0x%-.4x
  5116. #>0x145    string    Default:\ F                \b, FREE-DOS MBR
  5117. #>0x14B    string    Default:\ F                \b, FREE-DOS 1.0 MBR
  5118. >0x145    search/7    Default:\ F            \b, FREE-DOS MBR
  5119. #>>313        string    F0\ .\ .\ .            
  5120. #>>>322        string    disk\ 1                
  5121. #>>>>382    string    FAT3                
  5122. >64    string    no\ active\ partition\ found    
  5123. >>96    string    read\ error\ while\ reading\ drive    \b, FREE-DOS Beta 0.9 MBR
  5124. # Ranish Partition Manager http://www.ranish.com/part/
  5125. >387    search/4    \0\ Error!\r            
  5126. >>378    search/7    Virus!                 
  5127. >>>397    search/4    Booting\             
  5128. >>>>408    search/4    HD1/\0                 \b, Ranish MBR (
  5129. >>>>>416    string    Writing\ changes...        \b2.37
  5130. >>>>>>438    ubyte        x            \b,0x%x dots
  5131. >>>>>>440    ubyte        >0            \b,virus check
  5132. >>>>>>441    ubyte        >0            \b,partition %c
  5133. #2.38,2.42,2.44
  5134. >>>>>416    string    !Writing\ changes...        \b
  5135. >>>>>>418    ubyte    1                \bvirus check,
  5136. >>>>>>419    ubyte    x                \b0x%x seconds
  5137. >>>>>>420    ubyte&0x0F    >0            \b,partition
  5138. >>>>>>>420    ubyte&0x0F    <5            \b %x
  5139. >>>>>>>420    ubyte&0x0F    0Xf            \b ask
  5140. >>>>>420    ubyte        x            \b)
  5141. #
  5142. >271    string    Operating\ system\ loading         
  5143. >>296    string    error\r                    \b, SYSLINUX MBR (2.10)
  5144. # http://www.acronis.de/
  5145. >362    string    MBR\ Error\ \0\r            
  5146. >>376    string    ress\ any\ key\ to\             
  5147. >>>392    string    boot\ from\ floppy...\0            \b, Acronis MBR
  5148. # added by Joerg Jenderek
  5149. # http://www.visopsys.org/
  5150. # http://partitionlogic.org.uk/
  5151. >309    string    No\ bootable\ partition\ found\r    
  5152. >>339    string    I/O\ Error\ reading\ boot\ sector\r    \b, Visopsys MBR
  5153. >349    string    No\ bootable\ partition\ found\r    
  5154. >>379    string    I/O\ Error\ reading\ boot\ sector\r    \b, simple Visopsys MBR
  5155. # bootloader, bootmanager
  5156. >0x40    string    SBML                
  5157. # label with 11 characters of FAT 12 bit filesystem
  5158. >>43    string    SMART\ BTMGR            
  5159. >>>430    string    SBMK\ Bad!\r            \b, Smart Boot Manager
  5160. # OEM-ID not always "SBM"
  5161. #>>>>3    strings    SBM                
  5162. >>>>6    string    >\0                             \b, version %s
  5163. >382    string    XOSLLOADXCF            \b, eXtended Operating System Loader
  5164. >6    string    LILO                \b, LInux i386 boot LOader
  5165. >>120    string    LILO                \b, version 22.3.4 SuSe
  5166. >>172    string    LILO                \b, version 22.5.8 Debian
  5167. # updated by Joerg Jenderek at Oct 2008
  5168. # variables according to grub-0.97/stage1/stage1.S or
  5169. # http://www.gnu.org/software/grub/manual/grub.html#Embedded-data
  5170. # usual values are marked with comments to get only informations of strange GRUB loaders
  5171. >342        search/60    \0Geom\0    
  5172. #>0        ulelong        x        %x=0x009048EB ,    0x2a9048EB  0
  5173. >>0x41        ubyte        <2        
  5174. >>>0x3E        ubyte        >2        \b; GRand Unified Bootloader
  5175. # 0x3 for 0.5.95,0.93,0.94,0.96 0x4 for 1.90 
  5176. >>>>0x3E    ubyte        x        \b, stage1 version 0x%x
  5177. #If it is 0xFF, use a drive passed by BIOS
  5178. >>>>0x40    ubyte        <0xFF        \b, boot drive 0x%x
  5179. # in most case 0,1,0x2e for GRUB 0.5.95
  5180. >>>>0x41    ubyte        >0        \b, LBA flag 0x%x
  5181. >>>>0x42    uleshort    <0x8000        \b, stage2 address 0x%x
  5182. #>>>>0x42    uleshort    =0x8000        \b, stage2 address 0x%x (usual)
  5183. >>>>0x42    uleshort    >0x8000        \b, stage2 address 0x%x
  5184. #>>>>0x44    ulelong        =1        \b, 1st sector stage2 0x%x (default)
  5185. >>>>0x44    ulelong        >1        \b, 1st sector stage2 0x%x
  5186. >>>>0x48    uleshort    <0x800        \b, stage2 segment 0x%x
  5187. #>>>>0x48    uleshort    =0x800        \b, stage2 segment 0x%x (usual)
  5188. >>>>0x48    uleshort    >0x800        \b, stage2 segment 0x%x
  5189. >>>>402        string    Geom\0Hard\ Disk\0Read\0\ Error\0
  5190. >>>>>394    string    stage1            \b, GRUB version 0.5.95
  5191. >>>>382        string    Geom\0Hard\ Disk\0Read\0\ Error\0
  5192. >>>>>376    string    GRUB\ \0        \b, GRUB version 0.93 or 1.94
  5193. >>>>383        string    Geom\0Hard\ Disk\0Read\0\ Error\0
  5194. >>>>>377    string    GRUB\ \0        \b, GRUB version 0.94
  5195. >>>>385        string    Geom\0Hard\ Disk\0Read\0\ Error\0
  5196. >>>>>379    string    GRUB\ \0        \b, GRUB version 0.95 or 0.96
  5197. >>>>391        string    Geom\0Hard\ Disk\0Read\0\ Error\0
  5198. >>>>>385    string    GRUB\ \0        \b, GRUB version 0.97
  5199. #unkown version
  5200. >>>343        string    Geom\0Read\0\ Error\0    
  5201. >>>>321        string    Loading\ stage1.5    \b, GRUB version x.y
  5202. >>>380        string    Geom\0Hard\ Disk\0Read\0\ Error\0
  5203. >>>>374        string    GRUB\ \0        \b, GRUB version n.m
  5204. # http://syslinux.zytor.com/
  5205. >478    string    Boot\ failed\r            
  5206. >>495    string    LDLINUX\ SYS            \b, SYSLINUX bootloader (1.62)
  5207. >480    string    Boot\ failed\r            
  5208. >>495    string    LDLINUX\ SYS            \b, SYSLINUX bootloader (2.06 or 2.11)
  5209. >484    string    Boot\ error\r            \b, SYSLINUX bootloader (3.11)
  5210. >395    string    chksum\0\ ERROR!\0        \b, Gujin bootloader
  5211. # http://www.bcdwb.de/bcdw/index_e.htm
  5212. >3    string    BCDL                
  5213. >>498    string    BCDL\ \ \ \ BIN            \b, Bootable CD Loader (1.50Z)
  5214. # mbr partion table entries
  5215. # OEM-ID does not contain MicroSoft,NEWLDR,DOS,SYSLINUX,or MTOOLs
  5216. >3            string        !MS
  5217. >>3            string        !SYSLINUX
  5218. >>>3            string        !MTOOL
  5219. >>>>3            string        !NEWLDR
  5220. >>>>>5            string        !DOS
  5221. # not FAT (32 bit)
  5222. >>>>>>82        string        !FAT32
  5223. #not Linux kernel
  5224. >>>>>>>514        string        !HdrS
  5225. #not BeOS
  5226. >>>>>>>>422        string        !Be\ Boot\ Loader
  5227. # active flag 0 or 0x80 and type > 0
  5228. >>>>>>>>>446        ubyte        <0x81    
  5229. >>>>>>>>>>446        ubyte&0x7F    0    
  5230. >>>>>>>>>>>450        ubyte        >0    \b; partition 1: ID=0x%x
  5231. >>>>>>>>>>>>446        ubyte        0x80    \b, active
  5232. >>>>>>>>>>>>447        ubyte        x    \b, starthead %u
  5233. #>>>>>>>>>>>>448        ubyte        x    \b, start C_S: 0x%x
  5234. #>>>>>>>>>>>>448        ubeshort&1023    x    \b, startcylinder? %d
  5235. >>>>>>>>>>>>454        ulelong        x    \b, startsector %u
  5236. >>>>>>>>>>>>458        ulelong        x    \b, %u sectors
  5237. #
  5238. >>>>>>>>>462        ubyte        <0x81    
  5239. >>>>>>>>>>462        ubyte&0x7F    0        
  5240. >>>>>>>>>>>466        ubyte        >0    \b; partition 2: ID=0x%x
  5241. >>>>>>>>>>>>462        ubyte        0x80    \b, active
  5242. >>>>>>>>>>>>463        ubyte        x    \b, starthead %u
  5243. #>>>>>>>>>>>>464        ubyte        x    \b, start C_S: 0x%x
  5244. #>>>>>>>>>>>>464        ubeshort&1023    x    \b, startcylinder? %d
  5245. >>>>>>>>>>>>470        ulelong        x    \b, startsector %u
  5246. >>>>>>>>>>>>474        ulelong        x    \b, %u sectors
  5247. #
  5248. >>>>>>>>>478        ubyte        <0x81        
  5249. >>>>>>>>>>478        ubyte&0x7F    0        
  5250. >>>>>>>>>>>482        ubyte        >0    \b; partition 3: ID=0x%x
  5251. >>>>>>>>>>>>478        ubyte        0x80    \b, active
  5252. >>>>>>>>>>>>479        ubyte        x    \b, starthead %u
  5253. #>>>>>>>>>>>>480        ubyte        x    \b, start C_S: 0x%x
  5254. #>>>>>>>>>>>>481        ubyte        x    \b, start C2S: 0x%x
  5255. #>>>>>>>>>>>>480        ubeshort&1023    x    \b, startcylinder? %d
  5256. >>>>>>>>>>>>486        ulelong        x    \b, startsector %u
  5257. >>>>>>>>>>>>490        ulelong        x    \b, %u sectors
  5258. #
  5259. >>>>>>>>>494        ubyte        <0x81    
  5260. >>>>>>>>>>494        ubyte&0x7F    0        
  5261. >>>>>>>>>>>498        ubyte        >0    \b; partition 4: ID=0x%x
  5262. >>>>>>>>>>>>494        ubyte        0x80    \b, active
  5263. >>>>>>>>>>>>495        ubyte        x    \b, starthead %u
  5264. #>>>>>>>>>>>>496        ubyte        x    \b, start C_S: 0x%x
  5265. #>>>>>>>>>>>>496        ubeshort&1023    x    \b, startcylinder? %d
  5266. >>>>>>>>>>>>502        ulelong        x    \b, startsector %u
  5267. >>>>>>>>>>>>506        ulelong        x    \b, %u sectors
  5268. # mbr partion table entries end
  5269. # http://www.acronis.de/
  5270. #FAT label=ACRONIS\ SZ
  5271. #OEM-ID=BOOTWIZ0
  5272. >442    string    Non-system\ disk,\     
  5273. >>459    string    press\ any\ key...\x7\0        \b, Acronis Startup Recovery Loader
  5274. # DOS names like F11.SYS are 8 right space padded bytes+3 bytes
  5275. >>>477        ubyte&0xDF    >0        
  5276. >>>>477        string        x         \b %-.3s
  5277. >>>>>480    ubyte&0xDF    >0        
  5278. >>>>>>480    string        x         \b%-.5s
  5279. >>>>485        ubyte&0xDF    >0        
  5280. >>>>>485    string        x         \b.%-.3s
  5281. #
  5282. >185    string    FDBOOT\ Version\             
  5283. >>204    string    \rNo\ Systemdisk.\             
  5284. >>>220    string    Booting\ from\ harddisk.\n\r        
  5285. >>>245    string    Cannot\ load\ from\ harddisk.\n\r    
  5286. >>>>273 string    Insert\ Systemdisk\             
  5287. >>>>>291 string and\ press\ any\ key.\n\r        \b, FDBOOT harddisk Bootloader
  5288. >>>>>>200 string    >\0                             \b, version %-3s
  5289. >242    string    Bootsector\ from\ C.H.\ Hochst\204    
  5290. >>278    string    No\ Systemdisk.\             
  5291. >>>293    string    Booting\ from\ harddisk.\n\r        
  5292. >>>441    string    Cannot\ load\ from\ harddisk.\n\r    
  5293. >>>>469 string    Insert\ Systemdisk\             
  5294. >>>>>487 string and\ press\ any\ key.\n\r        \b, WinImage harddisk Bootloader
  5295. >>>>>>209 string    >\0                             \b, version %-4.4s
  5296. >(1.b+2)    ubyte        0xe            
  5297. >>(1.b+3)    ubyte        0x1f            
  5298. >>>(1.b+4)    ubyte        0xbe            
  5299. >>>>(1.b+5)    ubyte        0x77            
  5300. >>>>(1.b+6)    ubyte        0x7c            
  5301. >>>>>(1.b+7)    ubyte        0xac            
  5302. >>>>>>(1.b+8)    ubyte        0x22            
  5303. >>>>>>>(1.b+9)    ubyte        0xc0            
  5304. >>>>>>>>(1.b+10)    ubyte    0x74            
  5305. >>>>>>>>>(1.b+11)    ubyte    0xb            
  5306. >>>>>>>>>>(1.b+12)    ubyte    0x56            
  5307. >>>>>>>>>>(1.b+13)    ubyte    0xb4            \b, mkdosfs boot message display
  5308. >214    string    Please\ try\ to\ install\ FreeDOS\     \b, DOS Emulator boot message display
  5309. #>>244    string    from\ dosemu-freedos-*-bin.tgz\r    
  5310. #>>>170    string    Sorry,\ could\ not\ load\ an\         
  5311. #>>>>195    string    operating\ system.\r\n        
  5312. #
  5313. >103    string    This\ is\ not\ a\ bootable\ disk.\     
  5314. >>132    string    Please\ insert\ a\ bootable\         
  5315. >>>157    string    floppy\ and\r\n                
  5316. >>>>169    string    press\ any\ key\ to\ try\ again...\r    \b, FREE-DOS message display
  5317. #
  5318. >66    string    Solaris\ Boot\ Sector            
  5319. >>99    string    Incomplete\ MDBoot\ load.        
  5320. >>>89    string    Version                 \b, Sun Solaris Bootloader
  5321. >>>>97    byte    x                    version %c
  5322. #
  5323. >408    string    OS/2\ !!\ SYS01475\r\0            
  5324. >>429    string    OS/2\ !!\ SYS02025\r\0            
  5325. >>>450    string    OS/2\ !!\ SYS02027\r\0            
  5326. >>>469    string    OS2BOOT\ \ \ \                 \b, IBM OS/2 Warp bootloader
  5327. #
  5328. >409    string    OS/2\ !!\ SYS01475\r\0            
  5329. >>430    string    OS/2\ !!\ SYS02025\r\0            
  5330. >>>451    string    OS/2\ !!\ SYS02027\r\0            
  5331. >>>470    string    OS2BOOT\ \ \ \                 \b, IBM OS/2 Warp Bootloader
  5332. >112        string    This\ disk\ is\ not\ bootable\r            
  5333. >>142        string    If\ you\ wish\ to\ make\ it\ bootable        
  5334. >>>176        string    run\ the\ DOS\ program\ SYS\              
  5335. >>>200        string    after\ the\r                    
  5336. >>>>216        string    system\ has\ been\ loaded\r\n            
  5337. >>>>>242    string    Please\ insert\ a\ DOS\ diskette\         
  5338. >>>>>271    string    into\r\n\ the\ drive\ and\             
  5339. >>>>>>292    string    strike\ any\ key...\0        \b, IBM OS/2 Warp message display
  5340. # XP
  5341. >430    string    NTLDR\ is\ missing\xFF\r\n        
  5342. >>449    string    Disk\ error\xFF\r\n            
  5343. >>>462    string    Press\ any\ key\ to\ restart\r        \b, Microsoft Windows XP Bootloader
  5344. # DOS names like NTLDR,CMLDR,$LDR$ are 8 right space padded bytes+3 bytes
  5345. >>>>417        ubyte&0xDF    >0            
  5346. >>>>>417    string        x            %-.5s
  5347. >>>>>>422    ubyte&0xDF    >0            
  5348. >>>>>>>422    string        x             \b%-.3s
  5349. >>>>>425    ubyte&0xDF    >0            
  5350. >>>>>>425    string        >\             \b.%-.3s
  5351. #
  5352. >>>>371        ubyte        >0x20            
  5353. >>>>>368    ubyte&0xDF    >0            
  5354. >>>>>>368    string        x             %-.5s
  5355. >>>>>>>373    ubyte&0xDF    >0            
  5356. >>>>>>>>373    string        x             \b%-.3s
  5357. >>>>>>376    ubyte&0xDF    >0            
  5358. >>>>>>>376    string        x             \b.%-.3s
  5359. #
  5360. >430    string    NTLDR\ nicht\ gefunden\xFF\r\n        
  5361. >>453    string    Datentr\204gerfehler\xFF\r\n        
  5362. >>>473    string    Neustart\ mit\ beliebiger\ Taste\r    \b, Microsoft Windows XP Bootloader (german)
  5363. >>>>417        ubyte&0xDF    >0            
  5364. >>>>>417    string        x            %-.5s
  5365. >>>>>>422    ubyte&0xDF    >0            
  5366. >>>>>>>422    string        x             \b%-.3s
  5367. >>>>>425    ubyte&0xDF    >0            
  5368. >>>>>>425    string        >\             \b.%-.3s
  5369. # offset variant
  5370. >>>>379    string    \0                    
  5371. >>>>>368    ubyte&0xDF    >0            
  5372. >>>>>>368    string        x             %-.5s
  5373. >>>>>>>373    ubyte&0xDF    >0            
  5374. >>>>>>>>373    string        x             \b%-.3s
  5375. #
  5376. >430    string    NTLDR\ fehlt\xFF\r\n            
  5377. >>444    string    Datentr\204gerfehler\xFF\r\n        
  5378. >>>464    string    Neustart\ mit\ beliebiger\ Taste\r    \b, Microsoft Windows XP Bootloader (2.german)
  5379. >>>>417        ubyte&0xDF    >0            
  5380. >>>>>417    string        x            %-.5s
  5381. >>>>>>422    ubyte&0xDF    >0            
  5382. >>>>>>>422    string        x             \b%-.3s
  5383. >>>>>425    ubyte&0xDF    >0            
  5384. >>>>>>425    string        >\             \b.%-.3s
  5385. # variant
  5386. >>>>371        ubyte        >0x20            
  5387. >>>>>368    ubyte&0xDF    >0            
  5388. >>>>>>368    string        x             %-.5s
  5389. >>>>>>>373    ubyte&0xDF    >0            
  5390. >>>>>>>>373    string        x             \b%-.3s
  5391. >>>>>>376    ubyte&0xDF    >0            
  5392. >>>>>>>376    string        x             \b.%-.3s
  5393. #
  5394. >430    string    NTLDR\ fehlt\xFF\r\n            
  5395. >>444    string    Medienfehler\xFF\r\n            
  5396. >>>459    string    Neustart:\ Taste\ dr\201cken\r        \b, Microsoft Windows XP Bootloader (3.german)
  5397. >>>>371        ubyte        >0x20            
  5398. >>>>>368    ubyte&0xDF    >0            
  5399. >>>>>>368    string        x             %-.5s
  5400. >>>>>>>373    ubyte&0xDF    >0            
  5401. >>>>>>>>373    string        x             \b%-.3s
  5402. >>>>>>376    ubyte&0xDF    >0            
  5403. >>>>>>>376    string        x             \b.%-.3s
  5404. # variant
  5405. >>>>417        ubyte&0xDF    >0            
  5406. >>>>>417    string        x            %-.5s
  5407. >>>>>>422    ubyte&0xDF    >0            
  5408. >>>>>>>422    string        x             \b%-.3s
  5409. >>>>>425    ubyte&0xDF    >0            
  5410. >>>>>>425    string        >\             \b.%-.3s
  5411. #
  5412. >430    string    Datentr\204ger\ entfernen\xFF\r\n    
  5413. >>454    string    Medienfehler\xFF\r\n            
  5414. >>>469    string    Neustart:\ Taste\ dr\201cken\r        \b, Microsoft Windows XP Bootloader (4.german)
  5415. >>>>379        string        \0            
  5416. >>>>>368    ubyte&0xDF    >0            
  5417. >>>>>>368    string        x             %-.5s
  5418. >>>>>>>373    ubyte&0xDF    >0            
  5419. >>>>>>>>373    string        x             \b%-.3s
  5420. >>>>>>376    ubyte&0xDF    >0            
  5421. >>>>>>>376    string        x             \b.%-.3s
  5422. # variant
  5423. >>>>417        ubyte&0xDF    >0            
  5424. >>>>>417    string        x            %-.5s
  5425. >>>>>>422    ubyte&0xDF    >0            
  5426. >>>>>>>422    string        x             \b%-.3s
  5427. >>>>>425    ubyte&0xDF    >0            
  5428. >>>>>>425    string        >\             \b.%-.3s
  5429. #
  5430.  
  5431. #>3    string    NTFS\ \ \ \                 
  5432. >389    string    Fehler\ beim\ Lesen\ 
  5433. >>407    string    des\ Datentr\204gers
  5434. >>>426    string    NTLDR\ fehlt                
  5435. >>>>440    string    NTLDR\ ist\ komprimiert
  5436. >>>>>464 string    Neustart\ mit\ Strg+Alt+Entf\r        \b, Microsoft Windows XP Bootloader NTFS (german)
  5437. #>3    string    NTFS\ \ \ \                 
  5438. >313    string    A\ disk\ read\ error\ occurred.\r
  5439. >>345    string    A\ kernel\ file\ is\ missing\     
  5440. >>>370    string    from\ the\ disk.\r        
  5441. >>>>484    string    NTLDR\ is\ compressed        
  5442. >>>>>429 string    Insert\ a\ system\ diskette\     
  5443. >>>>>>454 string and\ restart\r\nthe\ system.\r        \b, Microsoft Windows XP Bootloader NTFS
  5444. # DOS loader variants different languages,offsets
  5445. >472    ubyte&0xDF    >0
  5446. >>389    string    Invalid\ system\ disk\xFF\r\n        
  5447. >>>411    string    Disk\ I/O\ error            
  5448. >>>>428    string    Replace\ the\ disk,\ and\         
  5449. >>>>>455 string    press\ any\ key                \b, Microsoft Windows 98 Bootloader
  5450. #IO.SYS
  5451. >>>>>>472    ubyte&0xDF    >0            
  5452. >>>>>>>472    string        x             \b %-.2s
  5453. >>>>>>>>474    ubyte&0xDF    >0            
  5454. >>>>>>>>>474    string        x             \b%-.5s
  5455. >>>>>>>>>>479    ubyte&0xDF    >0            
  5456. >>>>>>>>>>>479 string        x             \b%-.1s
  5457. >>>>>>>480    ubyte&0xDF    >0            
  5458. >>>>>>>>480    string        x             \b.%-.3s
  5459. #MSDOS.SYS
  5460. >>>>>>>483    ubyte&0xDF    >0            \b+
  5461. >>>>>>>>483    string        x             \b%-.5s
  5462. >>>>>>>>>488    ubyte&0xDF    >0            
  5463. >>>>>>>>>>488    string        x             \b%-.3s
  5464. >>>>>>>>491    ubyte&0xDF    >0            
  5465. >>>>>>>>>491    string        x             \b.%-.3s
  5466. #
  5467. >>390    string    Invalid\ system\ disk\xFF\r\n        
  5468. >>>412    string    Disk\ I/O\ error\xFF\r\n        
  5469. >>>>429    string    Replace\ the\ disk,\ and\         
  5470. >>>>>451 string    then\ press\ any\ key\r            \b, Microsoft Windows 98 Bootloader
  5471. >>388    string    Ungueltiges\ System\ \xFF\r\n        
  5472. >>>410    string    E/A-Fehler\ \ \ \ \xFF\r\n        
  5473. >>>>427    string    Datentraeger\ wechseln\ und\         
  5474. >>>>>453 string    Taste\ druecken\r            \b, Microsoft Windows 95/98/ME Bootloader (german)
  5475. #WINBOOT.SYS only not spaces (0xDF)
  5476. >>>>>>497    ubyte&0xDF    >0            
  5477. >>>>>>>497    string        x             %-.5s
  5478. >>>>>>>>502    ubyte&0xDF    >0            
  5479. >>>>>>>>>502    string        x             \b%-.1s
  5480. >>>>>>>>>>503    ubyte&0xDF    >0            
  5481. >>>>>>>>>>>503    string        x             \b%-.1s
  5482. >>>>>>>>>>>>504    ubyte&0xDF    >0            
  5483. >>>>>>>>>>>>>504 string        x             \b%-.1s
  5484. >>>>>>505    ubyte&0xDF    >0            
  5485. >>>>>>>505    string        x             \b.%-.3s
  5486. #IO.SYS
  5487. >>>>>>472    ubyte&0xDF    >0            or
  5488. >>>>>>>472    string        x             \b %-.2s
  5489. >>>>>>>>474    ubyte&0xDF    >0            
  5490. >>>>>>>>>474    string        x             \b%-.5s
  5491. >>>>>>>>>>479    ubyte&0xDF    >0            
  5492. >>>>>>>>>>>479 string        x             \b%-.1s
  5493. >>>>>>>480    ubyte&0xDF    >0            
  5494. >>>>>>>>480    string        x             \b.%-.3s
  5495. #MSDOS.SYS
  5496. >>>>>>>483    ubyte&0xDF    >0            \b+
  5497. >>>>>>>>483    string        x             \b%-.5s
  5498. >>>>>>>>>488    ubyte&0xDF    >0            
  5499. >>>>>>>>>>488    string        x             \b%-.3s
  5500. >>>>>>>>491    ubyte&0xDF    >0            
  5501. >>>>>>>>>491    string        x             \b.%-.3s
  5502. #
  5503. >>390    string    Ungueltiges\ System\ \xFF\r\n        
  5504. >>>412    string    E/A-Fehler\ \ \ \ \xFF\r\n        
  5505. >>>>429    string    Datentraeger\ wechseln\ und\         
  5506. >>>>>455 string    Taste\ druecken\r            \b, Microsoft Windows 95/98/ME Bootloader (German)
  5507. #WINBOOT.SYS only not spaces (0xDF)
  5508. >>>>>>497    ubyte&0xDF    >0            
  5509. >>>>>>>497    string        x             %-.7s
  5510. >>>>>>>>504    ubyte&0xDF    >0            
  5511. >>>>>>>>>504    string        x             \b%-.1s
  5512. >>>>>>505    ubyte&0xDF    >0            
  5513. >>>>>>>505    string        x             \b.%-.3s
  5514. #IO.SYS
  5515. >>>>>>472    ubyte&0xDF    >0            or
  5516. >>>>>>>472    string        x             \b %-.2s
  5517. >>>>>>>>474    ubyte&0xDF    >0            
  5518. >>>>>>>>>474    string        x             \b%-.6s
  5519. >>>>>>>480    ubyte&0xDF    >0            
  5520. >>>>>>>>480    string        x             \b.%-.3s
  5521. #MSDOS.SYS
  5522. >>>>>>>483    ubyte&0xDF    >0            \b+
  5523. >>>>>>>>483    string        x             \b%-.5s
  5524. >>>>>>>>>488    ubyte&0xDF    >0            
  5525. >>>>>>>>>>488    string        x             \b%-.3s
  5526. >>>>>>>>491    ubyte&0xDF    >0            
  5527. >>>>>>>>>491    string        x             \b.%-.3s
  5528. #
  5529. >>389    string    Ungueltiges\ System\ \xFF\r\n        
  5530. >>>411    string    E/A-Fehler\ \ \ \ \xFF\r\n        
  5531. >>>>428    string    Datentraeger\ wechseln\ und\         
  5532. >>>>>454 string    Taste\ druecken\r            \b, Microsoft Windows 95/98/ME Bootloader (GERMAN)
  5533. # DOS names like IO.SYS,WINBOOT.SYS,MSDOS.SYS,WINBOOT.INI are 8 right space padded bytes+3 bytes
  5534. >>>>>>472    string        x             %-.2s
  5535. >>>>>>>474    ubyte&0xDF    >0            
  5536. >>>>>>>>474    string        x             \b%-.5s
  5537. >>>>>>>>479    ubyte&0xDF    >0            
  5538. >>>>>>>>>479    string        x             \b%-.1s
  5539. >>>>>>480    ubyte&0xDF    >0            
  5540. >>>>>>>480    string        x             \b.%-.3s
  5541. >>>>>>483    ubyte&0xDF    >0            \b+
  5542. >>>>>>>483    string        x             \b%-.5s
  5543. >>>>>>>488    ubyte&0xDF    >0            
  5544. >>>>>>>>488    string        x             \b%-.2s
  5545. >>>>>>>>490    ubyte&0xDF    >0            
  5546. >>>>>>>>>490    string        x             \b%-.1s
  5547. >>>>>>>491    ubyte&0xDF    >0            
  5548. >>>>>>>>491    string        x             \b.%-.3s
  5549. >479    ubyte&0xDF    >0
  5550. >>416    string    Kein\ System\ oder\             
  5551. >>>433    string    Laufwerksfehler                
  5552. >>>>450    string    Wechseln\ und\ Taste\ dr\201cken    \b, Microsoft DOS Bootloader (german)
  5553. #IO.SYS
  5554. >>>>>479    string        x             \b %-.2s
  5555. >>>>>>481    ubyte&0xDF    >0            
  5556. >>>>>>>481    string        x             \b%-.6s
  5557. >>>>>487    ubyte&0xDF    >0            
  5558. >>>>>>487    string        x             \b.%-.3s
  5559. #MSDOS.SYS
  5560. >>>>>>490    ubyte&0xDF    >0            \b+
  5561. >>>>>>>490    string        x             \b%-.5s
  5562. >>>>>>>>495    ubyte&0xDF    >0            
  5563. >>>>>>>>>495    string        x             \b%-.3s
  5564. >>>>>>>498    ubyte&0xDF    >0            
  5565. >>>>>>>>498    string        x             \b.%-.3s
  5566. #
  5567. >376    search/41    Non-System\ disk\ or\         
  5568. >>395    search/41    disk\ error\r            
  5569. >>>407    search/41    Replace\ and\             
  5570. >>>>419    search/41    press\                 \b,
  5571. >>>>419    search/41    strike\             \b, old
  5572. >>>>426    search/41    any\ key\ when\ ready\r        MS or PC-DOS bootloader
  5573. #449            Disk\ Boot\ failure\r        MS 3.21
  5574. #466            Boot\ Failure\r            MS 3.30
  5575. >>>>>468 search/18    \0                
  5576. #IO.SYS,IBMBIO.COM
  5577. >>>>>>&0    string        x             \b %-.2s
  5578. >>>>>>>&-20    ubyte&0xDF    >0            
  5579. >>>>>>>>&-1    string        x             \b%-.4s
  5580. >>>>>>>>>&-16    ubyte&0xDF    >0            
  5581. >>>>>>>>>>&-1    string        x             \b%-.2s
  5582. >>>>>>&8    ubyte&0xDF    >0            \b.
  5583. >>>>>>>&-1    string        x             \b%-.3s
  5584. #MSDOS.SYS,IBMDOS.COM
  5585. >>>>>>&11    ubyte&0xDF    >0            \b+
  5586. >>>>>>>&-1    string        x             \b%-.5s
  5587. >>>>>>>>&-6    ubyte&0xDF    >0            
  5588. >>>>>>>>>&-1    string        x             \b%-.1s
  5589. >>>>>>>>>>&-5    ubyte&0xDF    >0            
  5590. >>>>>>>>>>>&-1    string        x             \b%-.2s
  5591. >>>>>>>&7    ubyte&0xDF    >0            \b.
  5592. >>>>>>>>&-1    string        x             \b%-.3s
  5593. >441    string    Cannot\ load\ from\ harddisk.\n\r
  5594. >>469    string    Insert\ Systemdisk\             
  5595. >>>487    string    and\ press\ any\ key.\n\r        \b, MS (2.11) DOS bootloader
  5596. #>43    string    \224R-LOADER\ \ SYS            =label                    
  5597. >54    string    SYS
  5598. >>324    string    VASKK
  5599. >>>495    string    NEWLDR\0                \b, DR-DOS Bootloader (LOADER.SYS)
  5600. #
  5601. >98    string    Press\ a\ key\ to\ retry\0\r        
  5602. >>120    string    Cannot\ find\ file\ \0\r        
  5603. >>>139    string    Disk\ read\ error\0\r            
  5604. >>>>156    string    Loading\ ...\0                \b, DR-DOS (3.41) Bootloader
  5605. #DRBIOS.SYS
  5606. >>>>>44        ubyte&0xDF    >0            
  5607. >>>>>>44    string        x            \b %-.6s
  5608. >>>>>>>50    ubyte&0xDF    >0            
  5609. >>>>>>>>50    string        x             \b%-.2s
  5610. >>>>>>52    ubyte&0xDF    >0            
  5611. >>>>>>>52    string        x             \b.%-.3s
  5612. #
  5613. >70    string    IBMBIO\ \ COM                
  5614. >>472    string    Cannot\ load\ DOS!\             
  5615. >>>489    string    Any\ key\ to\ retry            \b, DR-DOS Bootloader
  5616. >>471    string    Cannot\ load\ DOS\             
  5617. >>487    string    press\ key\ to\ retry            \b, Open-DOS Bootloader
  5618. #??
  5619. >444    string    KERNEL\ \ SYS                    
  5620. >>314    string    BOOT\ error!                \b, FREE-DOS Bootloader
  5621. >499    string    KERNEL\ \ SYS                
  5622. >>305    string    BOOT\ err!\0                \b, Free-DOS Bootloader
  5623. >449    string    KERNEL\ \ SYS                
  5624. >>319    string    BOOT\ error!                \b, FREE-DOS 0.5 Bootloader
  5625. #
  5626. >449    string    Loading\ FreeDOS            
  5627. >>0x1AF        ulelong        >0            \b, FREE-DOS 0.95,1.0 Bootloader
  5628. >>>497        ubyte&0xDF    >0            
  5629. >>>>497        string        x             \b %-.6s
  5630. >>>>>503    ubyte&0xDF    >0            
  5631. >>>>>>503    string        x             \b%-.1s
  5632. >>>>>>>504    ubyte&0xDF    >0            
  5633. >>>>>>>>504    string        x             \b%-.1s
  5634. >>>>505        ubyte&0xDF    >0            
  5635. >>>>>505    string        x             \b.%-.3s
  5636. #
  5637. >331    string    Error!.0                \b, FREE-DOS 1.0 bootloader
  5638. #
  5639. >125    string    Loading\ FreeDOS...\r            
  5640. >>311    string    BOOT\ error!\r                \b, FREE-DOS bootloader
  5641. >>>441        ubyte&0xDF    >0            
  5642. >>>>441        string        x             \b %-.6s
  5643. >>>>>447    ubyte&0xDF    >0            
  5644. >>>>>>447    string        x             \b%-.1s
  5645. >>>>>>>448    ubyte&0xDF    >0            
  5646. >>>>>>>>448    string        x             \b%-.1s
  5647. >>>>449        ubyte&0xDF    >0            
  5648. >>>>>449    string        x             \b.%-.3s
  5649. >124    string    FreeDOS\0                
  5650. >>331    string    \ err\0                    \b, FREE-DOS BETa 0.9 Bootloader
  5651. # DOS names like KERNEL.SYS,KERNEL16.SYS,KERNEL32.SYS,METAKERN.SYS are 8 right space padded bytes+3 bytes
  5652. >>>497        ubyte&0xDF    >0            
  5653. >>>>497        string        x             \b %-.6s
  5654. >>>>>503    ubyte&0xDF    >0            
  5655. >>>>>>503    string        x             \b%-.1s
  5656. >>>>>>>504    ubyte&0xDF    >0            
  5657. >>>>>>>>504    string        x             \b%-.1s
  5658. >>>>505        ubyte&0xDF    >0            
  5659. >>>>>505    string        x             \b.%-.3s
  5660. >>333    string    \ err\0                    \b, FREE-DOS BEta 0.9 Bootloader
  5661. >>>497        ubyte&0xDF    >0            
  5662. >>>>497        string        x             \b %-.6s
  5663. >>>>>503    ubyte&0xDF    >0            
  5664. >>>>>>503    string        x             \b%-.1s
  5665. >>>>>>>504    ubyte&0xDF    >0            
  5666. >>>>>>>>504    string        x             \b%-.1s
  5667. >>>>505        ubyte&0xDF    >0            
  5668. >>>>>505    string        x             \b.%-.3s
  5669. >>334    string    \ err\0                    \b, FREE-DOS Beta 0.9 Bootloader
  5670. >>>497        ubyte&0xDF    >0            
  5671. >>>>497        string        x             \b %-.6s
  5672. >>>>>503    ubyte&0xDF    >0            
  5673. >>>>>>503    string        x             \b%-.1s
  5674. >>>>>>>504    ubyte&0xDF    >0            
  5675. >>>>>>>>504    string        x             \b%-.1s
  5676. >>>>505        ubyte&0xDF    >0            
  5677. >>>>>505    string        x             \b.%-.3s
  5678. >336    string    Error!\                 
  5679. >>343    string    Hit\ a\ key\ to\ reboot.        \b, FREE-DOS Beta 0.9sr1 Bootloader
  5680. >>>497        ubyte&0xDF    >0            
  5681. >>>>497        string        x             \b %-.6s
  5682. >>>>>503    ubyte&0xDF    >0            
  5683. >>>>>>503    string        x             \b%-.1s
  5684. >>>>>>>504    ubyte&0xDF    >0            
  5685. >>>>>>>>504    string        x             \b%-.1s
  5686. >>>>505        ubyte&0xDF    >0            
  5687. >>>>>505    string        x             \b.%-.3s
  5688. # added by Joerg Jenderek
  5689. # http://www.visopsys.org/
  5690. # http://partitionlogic.org.uk/
  5691. # OEM-ID=Visopsys
  5692. >478        ulelong    0                    
  5693. >>(1.b+326)    string    I/O\ Error\ reading\             
  5694. >>>(1.b+344)    string    Visopsys\ loader\r            
  5695. >>>>(1.b+361)    string    Press\ any\ key\ to\ continue.\r    \b, Visopsys loader
  5696. # http://alexfru.chat.ru/epm.html#bootprog
  5697. >494    ubyte    >0x4D                    
  5698. >>495    string    >E                    
  5699. >>>495    string    <S                    
  5700. #OEM-ID is not reliable
  5701. >>>>3    string    BootProg                
  5702. # It just looks for a program file name at the root directory
  5703. # and loads corresponding file with following execution.
  5704. # DOS names like STARTUP.BIN,STARTUPC.COM,STARTUPE.EXE are 8 right space padded bytes+3 bytes
  5705. >>>>499            ubyte&0xDF    >0        \b, COM/EXE Bootloader
  5706. >>>>>499        string        x         \b %-.1s
  5707. >>>>>>500        ubyte&0xDF    >0        
  5708. >>>>>>>500        string        x         \b%-.1s
  5709. >>>>>>>>501        ubyte&0xDF    >0        
  5710. >>>>>>>>>501        string        x         \b%-.1s
  5711. >>>>>>>>>>502        ubyte&0xDF    >0        
  5712. >>>>>>>>>>>502        string        x         \b%-.1s
  5713. >>>>>>>>>>>>503        ubyte&0xDF    >0        
  5714. >>>>>>>>>>>>>503    string        x         \b%-.1s
  5715. >>>>>>>>>>>>>>504    ubyte&0xDF    >0        
  5716. >>>>>>>>>>>>>>>504    string        x         \b%-.1s
  5717. >>>>>>>>>>>>>>>>505    ubyte&0xDF    >0        
  5718. >>>>>>>>>>>>>>>>>505    string        x         \b%-.1s
  5719. >>>>>>>>>>>>>>>>>>506    ubyte&0xDF    >0        
  5720. >>>>>>>>>>>>>>>>>>>506    string        x         \b%-.1s
  5721. #name extension
  5722. >>>>>507        ubyte&0xDF    >0        \b.
  5723. >>>>>>507        string        x         \b%-.1s
  5724. >>>>>>>508        ubyte&0xDF    >0        
  5725. >>>>>>>>508        string        x         \b%-.1s
  5726. >>>>>>>>>509        ubyte&0xDF    >0        
  5727. >>>>>>>>>>509        string        x         \b%-.1s
  5728. #If the boot sector fails to read any other sector,
  5729. #it prints a very short message ("RE") to the screen and hangs the computer.
  5730. #If the boot sector fails to find needed program in the root directory,
  5731. #it also hangs with another message ("NF").
  5732. >>>>>492        string        RENF        \b, FAT (12 bit)
  5733. >>>>>495        string        RENF        \b, FAT (16 bit)
  5734. # http://alexfru.chat.ru/epm.html#bootprog
  5735. >494    ubyte    >0x4D                    
  5736. >>495    string    >E                    
  5737. >>>495    string    <S                    
  5738. #OEM-ID is not reliable
  5739. >>>>3    string    BootProg                
  5740. # It just looks for a program file name at the root directory
  5741. # and loads corresponding file with following execution.
  5742. # DOS names like STARTUP.BIN,STARTUPC.COM,STARTUPE.EXE are 8 right space padded bytes+3 bytes
  5743. >>>>499            ubyte&0xDF    >0        \b, COM/EXE Bootloader
  5744. >>>>>499        string        x         \b %-.1s
  5745. >>>>>>500        ubyte&0xDF    >0        
  5746. >>>>>>>500        string        x         \b%-.1s
  5747. >>>>>>>>501        ubyte&0xDF    >0        
  5748. >>>>>>>>>501        string        x         \b%-.1s
  5749. >>>>>>>>>>502        ubyte&0xDF    >0        
  5750. >>>>>>>>>>>502        string        x         \b%-.1s
  5751. >>>>>>>>>>>>503        ubyte&0xDF    >0        
  5752. >>>>>>>>>>>>>503    string        x         \b%-.1s
  5753. >>>>>>>>>>>>>>504    ubyte&0xDF    >0        
  5754. >>>>>>>>>>>>>>>504    string        x         \b%-.1s
  5755. >>>>>>>>>>>>>>>>505    ubyte&0xDF    >0        
  5756. >>>>>>>>>>>>>>>>>505    string        x         \b%-.1s
  5757. >>>>>>>>>>>>>>>>>>506    ubyte&0xDF    >0        
  5758. >>>>>>>>>>>>>>>>>>>506    string        x         \b%-.1s
  5759. #name extension
  5760. >>>>>507        ubyte&0xDF    >0        \b.
  5761. >>>>>>507        string        x         \b%-.1s
  5762. >>>>>>>508        ubyte&0xDF    >0        
  5763. >>>>>>>>508        string        x         \b%-.1s
  5764. >>>>>>>>>509        ubyte&0xDF    >0        
  5765. >>>>>>>>>>509        string        x         \b%-.1s
  5766. #If the boot sector fails to read any other sector,
  5767. #it prints a very short message ("RE") to the screen and hangs the computer.
  5768. #If the boot sector fails to find needed program in the root directory,
  5769. #it also hangs with another message ("NF").
  5770. >>>>>492        string        RENF        \b, FAT (12 bit)
  5771. >>>>>495        string        RENF        \b, FAT (16 bit)
  5772. # x86 bootloader end
  5773. # updated by Joerg Jenderek at Sep 2007
  5774. >3    ubyte    0            
  5775. #no active flag
  5776. >>446    ubyte    0            
  5777. # partition 1 not empty
  5778. >>>450    ubyte    >0            
  5779. # partitions 3,4 empty
  5780. >>>>482        ubyte    0            
  5781. >>>>>498    ubyte    0            
  5782. # partition 2 ID=0,5,15
  5783. >>>>>>466    ubyte    <0x10            
  5784. >>>>>>>466    ubyte    0x05            \b, extended partition table
  5785. >>>>>>>466    ubyte    0x0F            \b, extended partition table (LBA)
  5786. >>>>>>>466    ubyte    0x0            \b, extended partition table (last)    
  5787. # JuMP short     bootcodeoffset NOP assembler instructions will usually be EB xx 90
  5788. # http://mirror.href.com/thestarman/asm/2bytejumps.htmm#FWD
  5789. # older drives may use Near JuMP instruction E9 xx xx
  5790. >0        lelong&0x009000EB    0x009000EB 
  5791. >0        lelong&0x000000E9    0x000000E9 
  5792. # minimal short forward jump found 03cx??
  5793. # maximal short forward jump is 07fx
  5794. >1        ubyte            <0xff    \b, code offset 0x%x
  5795. # mtools-3.9.8/msdos.h
  5796. # usual values are marked with comments to get only informations of strange FAT systems
  5797. # valid sectorsize must be a power of 2 from 32 to 32768
  5798. >>11        uleshort&0x000f    x        
  5799. >>>11        uleshort    <32769        
  5800. >>>>11        uleshort    >31        
  5801. >>>>>21        ubyte&0xf0    0xF0        
  5802. >>>>>>3        string        >\0        \b, OEM-ID "%8.8s"
  5803. #http://mirror.href.com/thestarman/asm/debug/debug2.htm#IHC
  5804. >>>>>>>8    string        IHC        \b cached by Windows 9M
  5805. >>>>>>11    uleshort    >512        \b, Bytes/sector %u
  5806. #>>>>>>11    uleshort    =512        \b, Bytes/sector %u=512 (usual)
  5807. >>>>>>11    uleshort    <512        \b, Bytes/sector %u
  5808. >>>>>>13    ubyte        >1        \b, sectors/cluster %u
  5809. #>>>>>>13    ubyte        =1        \b, sectors/cluster %u (usual on Floppies)
  5810. >>>>>>14    uleshort    >32        \b, reserved sectors %u
  5811. #>>>>>>14    uleshort    =32        \b, reserved sectors %u (usual Fat32)
  5812. #>>>>>>14    uleshort    >1        \b, reserved sectors %u
  5813. #>>>>>>14    uleshort    =1        \b, reserved sectors %u (usual FAT12,FAT16)
  5814. >>>>>>14    uleshort    <1        \b, reserved sectors %u
  5815. >>>>>>16    ubyte        >2        \b, FATs %u
  5816. #>>>>>>16    ubyte        =2        \b, FATs %u (usual)
  5817. >>>>>>16    ubyte        =1        \b, FAT  %u
  5818. >>>>>>16    ubyte        >0
  5819. >>>>>>17    uleshort    >0        \b, root entries %u
  5820. #>>>>>>17    uleshort    =0        \b, root entries %u=0 (usual Fat32)
  5821. >>>>>>19    uleshort    >0        \b, sectors %u (volumes <=32 MB) 
  5822. #>>>>>>19    uleshort    =0        \b, sectors %u=0 (usual Fat32)
  5823. >>>>>>21    ubyte        >0xF0        \b, Media descriptor 0x%x
  5824. #>>>>>>21    ubyte        =0xF0        \b, Media descriptor 0x%x (usual floppy)
  5825. >>>>>>21    ubyte        <0xF0        \b, Media descriptor 0x%x
  5826. >>>>>>22    uleshort    >0        \b, sectors/FAT %u
  5827. #>>>>>>22    uleshort    =0        \b, sectors/FAT %u=0 (usual Fat32)
  5828. >>>>>>26    ubyte        >2        \b, heads %u
  5829. #>>>>>>26    ubyte        =2        \b, heads %u (usual floppy)
  5830. >>>>>>26    ubyte        =1        \b, heads %u
  5831. #skip for Digital Research DOS (version 3.41) 1440 kB Bootdisk
  5832. >>>>>>38    ubyte        !0x70        
  5833. >>>>>>>28    ulelong        >0        \b, hidden sectors %u
  5834. #>>>>>>>28    ulelong        =0        \b, hidden sectors %u (usual floppy)
  5835. >>>>>>>32    ulelong        >0        \b, sectors %u (volumes > 32 MB) 
  5836. #>>>>>>>32    ulelong        =0        \b, sectors %u (volumes > 32 MB)
  5837. # FAT<32 specific 
  5838. >>>>>>82    string        !FAT32
  5839. #>>>>>>>36    ubyte        0x80        \b, physical drive 0x%x=0x80 (usual harddisk)
  5840. #>>>>>>>36    ubyte        0        \b, physical drive 0x%x=0 (usual floppy)
  5841. >>>>>>>36    ubyte        !0x80        
  5842. >>>>>>>>36    ubyte        !0        \b, physical drive 0x%x
  5843. >>>>>>>37    ubyte        >0        \b, reserved 0x%x
  5844. #>>>>>>>37    ubyte        =0        \b, reserved 0x%x
  5845. >>>>>>>38    ubyte        >0x29        \b, dos < 4.0 BootSector (0x%x)
  5846. >>>>>>>38    ubyte        <0x29        \b, dos < 4.0 BootSector (0x%x)
  5847. >>>>>>>38    ubyte        =0x29
  5848. >>>>>>>>39    ulelong        x        \b, serial number 0x%x
  5849. >>>>>>>>43    string        <NO\ NAME    \b, label: "%11.11s"
  5850. >>>>>>>>43    string        >NO\ NAME    \b, label: "%11.11s"
  5851. >>>>>>>>43    string        =NO\ NAME    \b, unlabeled
  5852. >>>>>>>54    string        FAT        \b, FAT
  5853. >>>>>>>>54    string        FAT12        \b (12 bit)
  5854. >>>>>>>>54    string        FAT16        \b (16 bit)
  5855. # FAT32 specific
  5856. >>>>>>82    string        FAT32        \b, FAT (32 bit)
  5857. >>>>>>>36    ulelong        x        \b, sectors/FAT %u
  5858. >>>>>>>40    uleshort    >0        \b, extension flags %u
  5859. #>>>>>>>40    uleshort    =0        \b, extension flags %u
  5860. >>>>>>>42    uleshort    >0        \b, fsVersion %u
  5861. #>>>>>>>42    uleshort    =0        \b, fsVersion %u (usual)
  5862. >>>>>>>44    ulelong        >2        \b, rootdir cluster %u
  5863. #>>>>>>>44    ulelong        =2        \b, rootdir cluster %u
  5864. #>>>>>>>44    ulelong        =1        \b, rootdir cluster %u
  5865. >>>>>>>48    uleshort    >1        \b, infoSector %u
  5866. #>>>>>>>48    uleshort    =1        \b, infoSector %u (usual)
  5867. >>>>>>>48    uleshort    <1        \b, infoSector %u
  5868. >>>>>>>50    uleshort    >6        \b, Backup boot sector %u
  5869. #>>>>>>>50    uleshort    =6        \b, Backup boot sector %u (usual) 
  5870. >>>>>>>50    uleshort    <6        \b, Backup boot sector %u
  5871. >>>>>>>54    ulelong        >0        \b, reserved1 0x%x
  5872. >>>>>>>58    ulelong        >0        \b, reserved2 0x%x
  5873. >>>>>>>62    ulelong        >0        \b, reserved3 0x%x
  5874. # same structure as FAT1X 
  5875. >>>>>>>64    ubyte        >0x80        \b, physical drive 0x%x
  5876. #>>>>>>>64    ubyte        =0x80        \b, physical drive 0x%x=80 (usual harddisk)
  5877. >>>>>>>64    ubyte&0x7F    >0        \b, physical drive 0x%x
  5878. #>>>>>>>64    ubyte        =0        \b, physical drive 0x%x=0 (usual floppy)
  5879. >>>>>>>65    ubyte        >0        \b, reserved 0x%x
  5880. >>>>>>>66    ubyte        >0x29        \b, dos < 4.0 BootSector (0x%x)
  5881. >>>>>>>66    ubyte        <0x29        \b, dos < 4.0 BootSector (0x%x)
  5882. >>>>>>>66    ubyte        =0x29
  5883. >>>>>>>>67    ulelong        x        \b, serial number 0x%x
  5884. >>>>>>>>71    string        <NO\ NAME    \b, label: "%11.11s"
  5885. >>>>>>>71    string        >NO\ NAME    \b, label: "%11.11s"
  5886. >>>>>>>71    string        =NO\ NAME    \b, unlabeled
  5887. ### FATs end
  5888. >0x200    lelong    0x82564557        \b, BSD disklabel
  5889. # FATX 
  5890. 0        string        FATX        FATX filesystem data
  5891.  
  5892.  
  5893. # Minix filesystems - Juan Cespedes <cespedes@debian.org>
  5894. 0x410    leshort        0x137f        Minix filesystem
  5895. 0x410    beshort        0x137f        Minix filesystem (big endian)
  5896. >0x402    beshort        !0        \b, %d zones
  5897. >0x1e    string        minix        \b, bootable
  5898. 0x410    leshort        0x138f        Minix filesystem, 30 char names
  5899. 0x410    leshort        0x2468        Minix filesystem, version 2
  5900. 0x410    leshort        0x2478        Minix filesystem, version 2, 30 char names
  5901.  
  5902. # romfs filesystems - Juan Cespedes <cespedes@debian.org>
  5903. 0    string        -rom1fs-    romfs filesystem, version 1
  5904. >8    belong    x            %d bytes,
  5905. >16    string    x            named %s.
  5906.  
  5907. # netboot image - Juan Cespedes <cespedes@debian.org>
  5908. 0    lelong        0x1b031336L    Netboot image,
  5909. >4    lelong&0xFFFFFF00    0
  5910. >>4    lelong&0x100    0x000        mode 2
  5911. >>4    lelong&0x100    0x100        mode 3
  5912. >4    lelong&0xFFFFFF00    !0    unknown mode
  5913.  
  5914. 0x18b    string    OS/2    OS/2 Boot Manager
  5915.  
  5916. # updated by Joerg Jenderek at Oct 2008!!
  5917. # http://syslinux.zytor.com/iso.php
  5918. 0    ulelong    0x7c40eafa        isolinux Loader
  5919. # http://syslinux.zytor.com/pxe.php
  5920. 0    ulelong    0x007c05ea        pxelinux Loader
  5921. 0    ulelong    0x60669c66        pxelinux Loader
  5922.  
  5923. # added by Joerg Jenderek
  5924. # In the second sector (+0x200) are variables according to grub-0.97/stage2/asm.S or
  5925. # grub-1.94/kern/i386/pc/startup.S
  5926. # http://www.gnu.org/software/grub/manual/grub.html#Embedded-data
  5927. # usual values are marked with comments to get only informations of strange GRUB loaders
  5928. 0x200    uleshort        0x70EA        
  5929. # found only version 3.{1,2}
  5930. >0x206        ubeshort    >0x0300        
  5931. # GRUB version (0.5.)95,0.93,0.94,0.96,0.97 > "00"
  5932. >>0x212     ubyte        >0x29        
  5933. >>>0x213     ubyte        >0x29        
  5934. # not iso9660_stage1_5
  5935. #>>>0    ulelong&0x00BE5652    0x00BE5652    
  5936. >>>>0x213     ubyte        >0x29        GRand Unified Bootloader
  5937. # config_file for stage1_5 is 0xffffffff + default "/boot/grub/stage2"
  5938. >>>>0x217     ubyte        0xFF        stage1_5
  5939. >>>>0x217     ubyte        <0xFF        stage2
  5940. >>>>0x206    ubyte        x        \b version %u
  5941. >>>>0x207    ubyte        x        \b.%u
  5942. # module_size for 1.94
  5943. >>>>0x208    ulelong        <0xffffff    \b, installed partition %u
  5944. #>>>>0x208    ulelong        =0xffffff    \b, %u (default)
  5945. >>>>0x208    ulelong        >0xffffff    \b, installed partition %u
  5946. # GRUB 0.5.95 unofficial
  5947. >>>>0x20C    ulelong&0x2E300000 0x2E300000    
  5948. # 0=stage2    1=ffs    2=e2fs    3=fat    4=minix    5=reiserfs
  5949. >>>>>0x20C    ubyte        x        \b, identifier 0x%x
  5950. #>>>>>0x20D    ubyte        =0        \b, LBA flag 0x%x (default)
  5951. >>>>>0x20D    ubyte        >0        \b, LBA flag 0x%x
  5952. # GRUB version as string
  5953. >>>>>0x20E     string        >\0        \b, GRUB version %-s
  5954. # for stage1_5 is 0xffffffff + config_file "/boot/grub/stage2" default
  5955. >>>>>>0x215     ulong        0xffffffff    
  5956. >>>>>>>0x219     string        >\0        \b, configuration file %-s
  5957. >>>>>>0x215     ulong        !0xffffffff    
  5958. >>>>>>>0x215     string        >\0        \b, configuration file %-s
  5959. # newer GRUB versions
  5960. >>>>0x20C    ulelong&0x2E300000 !0x2E300000    
  5961. ##>>>>>0x20C    ulelong        =0        \b, saved entry %d (usual)
  5962. >>>>>0x20C    ulelong        >0        \b, saved entry %d
  5963. # for 1.94 contains kernel image size
  5964. # for 0.93,0.94,0.96,0.97
  5965. # 0=stage2    1=ffs    2=e2fs    3=fat    4=minix    5=reiserfs    6=vstafs    7=jfs    8=xfs    9=iso9660    a=ufs2    
  5966. >>>>>0x210    ubyte        x        \b, identifier 0x%x
  5967. # The flag for LBA forcing is in most cases 0
  5968. #>>>>>0x211    ubyte        =0        \b, LBA flag 0x%x (default)
  5969. >>>>>0x211    ubyte        >0        \b, LBA flag 0x%x
  5970. # GRUB version as string
  5971. >>>>>0x212     string        >\0        \b, GRUB version %-s
  5972. # for stage1_5 is 0xffffffff + config_file "/boot/grub/stage2" default
  5973. >>>>>0x217     ulong        0xffffffff    
  5974. >>>>>>0x21b     string        >\0        \b, configuration file %-s
  5975. >>>>>0x217     ulong        !0xffffffff    
  5976. >>>>>>0x217     string        >\0        \b, configuration file %-s
  5977.  
  5978. 9564    lelong        0x00011954    Unix Fast File system [v1] (little-endian),
  5979. >8404    string        x        last mounted on %s,
  5980. #>9504    ledate        x        last checked at %s,
  5981. >8224    ledate        x        last written at %s,
  5982. >8401    byte        x        clean flag %d,
  5983. >8228    lelong        x        number of blocks %d,
  5984. >8232    lelong        x        number of data blocks %d,
  5985. >8236    lelong        x        number of cylinder groups %d,
  5986. >8240    lelong        x        block size %d,
  5987. >8244    lelong        x        fragment size %d,
  5988. >8252    lelong        x        minimum percentage of free blocks %d,
  5989. >8256    lelong        x        rotational delay %dms,
  5990. >8260    lelong        x        disk rotational speed %drps,
  5991. >8320    lelong        0        TIME optimization
  5992. >8320    lelong        1        SPACE optimization
  5993.  
  5994. 42332    lelong        0x19540119    Unix Fast File system [v2] (little-endian)
  5995. >&-1164    string        x        last mounted on %s,
  5996. >&-696    string        >\0        volume name %s,
  5997. >&-304    leqldate    x        last written at %s,
  5998. >&-1167    byte        x        clean flag %d,
  5999. >&-1168    byte        x        readonly flag %d,
  6000. >&-296    lequad        x        number of blocks %lld,
  6001. >&-288    lequad        x        number of data blocks %lld,
  6002. >&-1332    lelong        x        number of cylinder groups %d,
  6003. >&-1328    lelong        x        block size %d,
  6004. >&-1324    lelong        x        fragment size %d,
  6005. >&-180    lelong        x        average file size %d,
  6006. >&-176    lelong        x        average number of files in dir %d,
  6007. >&-272    lequad        x        pending blocks to free %lld,
  6008. >&-264    lelong        x        pending inodes to free %ld,
  6009. >&-664    lequad        x        system-wide uuid %0llx,
  6010. >&-1316    lelong        x        minimum percentage of free blocks %d,
  6011. >&-1248    lelong        0        TIME optimization
  6012. >&-1248    lelong        1        SPACE optimization
  6013.  
  6014. 66908    lelong        0x19540119    Unix Fast File system [v2] (little-endian)
  6015. >&-1164    string        x        last mounted on %s,
  6016. >&-696    string        >\0        volume name %s,
  6017. >&-304    leqldate    x        last written at %s,
  6018. >&-1167    byte        x        clean flag %d,
  6019. >&-1168    byte        x        readonly flag %d,
  6020. >&-296    lequad        x        number of blocks %lld,
  6021. >&-288    lequad        x        number of data blocks %lld,
  6022. >&-1332    lelong        x        number of cylinder groups %d,
  6023. >&-1328    lelong        x        block size %d,
  6024. >&-1324    lelong        x        fragment size %d,
  6025. >&-180    lelong        x        average file size %d,
  6026. >&-176    lelong        x        average number of files in dir %d,
  6027. >&-272    lequad        x        pending blocks to free %lld,
  6028. >&-264    lelong        x        pending inodes to free %ld,
  6029. >&-664    lequad        x        system-wide uuid %0llx,
  6030. >&-1316    lelong        x        minimum percentage of free blocks %d,
  6031. >&-1248    lelong        0        TIME optimization
  6032. >&-1248    lelong        1        SPACE optimization
  6033.  
  6034. 9564    belong        0x00011954    Unix Fast File system [v1] (big-endian),
  6035. >7168   belong        0x4c41424c    Apple UFS Volume
  6036. >>7186  string        x        named %s,
  6037. >>7176  belong        x        volume label version %d,
  6038. >>7180  bedate        x        created on %s,
  6039. >8404    string        x        last mounted on %s,
  6040. #>9504    bedate        x        last checked at %s,
  6041. >8224    bedate        x        last written at %s,
  6042. >8401    byte        x        clean flag %d,
  6043. >8228    belong        x        number of blocks %d,
  6044. >8232    belong        x        number of data blocks %d,
  6045. >8236    belong        x        number of cylinder groups %d,
  6046. >8240    belong        x        block size %d,
  6047. >8244    belong        x        fragment size %d,
  6048. >8252    belong        x        minimum percentage of free blocks %d,
  6049. >8256    belong        x        rotational delay %dms,
  6050. >8260    belong        x        disk rotational speed %drps,
  6051. >8320    belong        0        TIME optimization
  6052. >8320    belong        1        SPACE optimization
  6053.  
  6054. 42332    belong        0x19540119    Unix Fast File system [v2] (big-endian)
  6055. >&-1164    string        x        last mounted on %s,
  6056. >&-696    string        >\0        volume name %s,
  6057. >&-304    beqldate    x        last written at %s,
  6058. >&-1167    byte        x        clean flag %d,
  6059. >&-1168    byte        x        readonly flag %d,
  6060. >&-296    bequad        x        number of blocks %lld,
  6061. >&-288    bequad        x        number of data blocks %lld,
  6062. >&-1332    belong        x        number of cylinder groups %d,
  6063. >&-1328    belong        x        block size %d,
  6064. >&-1324    belong        x        fragment size %d,
  6065. >&-180    belong        x        average file size %d,
  6066. >&-176    belong        x        average number of files in dir %d,
  6067. >&-272    bequad        x        pending blocks to free %lld,
  6068. >&-264    belong        x        pending inodes to free %ld,
  6069. >&-664    bequad        x        system-wide uuid %0llx,
  6070. >&-1316    belong        x        minimum percentage of free blocks %d,
  6071. >&-1248    belong        0        TIME optimization
  6072. >&-1248    belong        1        SPACE optimization
  6073.  
  6074. 66908    belong        0x19540119    Unix Fast File system [v2] (big-endian)
  6075. >&-1164    string        x        last mounted on %s,
  6076. >&-696    string        >\0        volume name %s,
  6077. >&-304    beqldate    x        last written at %s,
  6078. >&-1167    byte        x        clean flag %d,
  6079. >&-1168    byte        x        readonly flag %d,
  6080. >&-296    bequad        x        number of blocks %lld,
  6081. >&-288    bequad        x        number of data blocks %lld,
  6082. >&-1332    belong        x        number of cylinder groups %d,
  6083. >&-1328    belong        x        block size %d,
  6084. >&-1324    belong        x        fragment size %d,
  6085. >&-180    belong        x        average file size %d,
  6086. >&-176    belong        x        average number of files in dir %d,
  6087. >&-272    bequad        x        pending blocks to free %lld,
  6088. >&-264    belong        x        pending inodes to free %ld,
  6089. >&-664    bequad        x        system-wide uuid %0llx,
  6090. >&-1316    belong        x        minimum percentage of free blocks %d,
  6091. >&-1248    belong        0        TIME optimization
  6092. >&-1248    belong        1        SPACE optimization
  6093.  
  6094. # ext2/ext3 filesystems - Andreas Dilger <adilger@dilger.ca>
  6095. # ext4 filesystem - Eric Sandeen <sandeen@sandeen.net>
  6096. # volume label and UUID Russell Coker
  6097. # http://etbe.coker.com.au/2008/07/08/label-vs-uuid-vs-device/
  6098. 0x438   leshort         0xEF53          Linux
  6099. >0x44c  lelong          x               rev %d
  6100. >0x43e  leshort         x               \b.%d
  6101. # No journal?  ext2
  6102. >0x45c  lelong          ^0x0000004      ext2 filesystem data
  6103. >>0x43a leshort         ^0x0000001      (mounted or unclean)
  6104. # Has a journal?  ext3 or ext4
  6105. >0x45c  lelong          &0x0000004
  6106. #  and small INCOMPAT?
  6107. >>0x460 lelong          <0x0000040
  6108. #   and small RO_COMPAT?
  6109. >>>0x464 lelong         <0x0000008      ext3 filesystem data
  6110. #   else large RO_COMPAT?
  6111. >>>0x464 lelong         >0x0000007      ext4 filesystem data
  6112. #  else large INCOMPAT?
  6113. >>0x460    lelong          >0x000003f      ext4 filesystem data
  6114. >0x468    belong        x        \b, UUID=%08x
  6115. >0x46c    beshort        x        \b-%04x
  6116. >0x46e    beshort        x        \b-%04x
  6117. >0x470    beshort        x        \b-%04x
  6118. >0x472    belong        x        \b-%08x
  6119. >0x476    beshort        x        \b%04x
  6120. >0x478    string        >0        \b, volume name "%s"
  6121. # General flags for any ext* fs
  6122. >0x460    lelong          &0x0000004      (needs journal recovery)
  6123. >0x43a    leshort         &0x0000002      (errors)
  6124. # INCOMPAT flags
  6125. >0x460    lelong          &0x0000001      (compressed)
  6126. #>0x460    lelong          &0x0000002      (filetype)
  6127. #>0x460    lelong          &0x0000010      (meta bg)
  6128. >0x460    lelong          &0x0000040      (extents)
  6129. >0x460    lelong          &0x0000080      (64bit)
  6130. #>0x460    lelong          &0x0000100      (mmp)
  6131. #>0x460    lelong          &0x0000200      (flex bg)
  6132. # RO_INCOMPAT flags
  6133. #>0x464    lelong          &0x0000001      (sparse super)
  6134. >0x464    lelong          &0x0000002      (large files)
  6135. >0x464    lelong          &0x0000008      (huge files)
  6136. #>0x464    lelong          &0x0000010      (gdt checksum)
  6137. #>0x464    lelong          &0x0000020      (many subdirs)
  6138. #>0x463    lelong          &0x0000040      (extra isize)
  6139.  
  6140. # SGI disk labels - Nathan Scott <nathans@debian.org>
  6141. 0    belong        0x0BE5A941    SGI disk label (volume header)
  6142.  
  6143. # SGI XFS filesystem - Nathan Scott <nathans@debian.org>
  6144. 0    belong        0x58465342    SGI XFS filesystem data
  6145. >0x4    belong        x        (blksz %d,
  6146. >0x68    beshort        x        inosz %d,
  6147. >0x64    beshort        ^0x2004        v1 dirs)
  6148. >0x64    beshort        &0x2004        v2 dirs)
  6149.  
  6150. ############################################################################
  6151. # Minix-ST kernel floppy
  6152. 0x800    belong        0x46fc2700    Atari-ST Minix kernel image
  6153. >19    string        \240\5\371\5\0\011\0\2\0    \b, 720k floppy
  6154. >19    string        \320\2\370\5\0\011\0\1\0    \b, 360k floppy
  6155.  
  6156. ############################################################################
  6157. # Hmmm, is this a better way of detecting _standard_ floppy images ?
  6158. 19    string        \320\2\360\3\0\011\0\1\0    DOS floppy 360k
  6159. >0x1FE    leshort        0xAA55        \b, x86 hard disk boot sector
  6160. 19    string        \240\5\371\3\0\011\0\2\0    DOS floppy 720k
  6161. >0x1FE    leshort        0xAA55        \b, x86 hard disk boot sector
  6162. 19    string        \100\013\360\011\0\022\0\2\0    DOS floppy 1440k
  6163. >0x1FE    leshort        0xAA55        \b, x86 hard disk boot sector
  6164.  
  6165. 19    string        \240\5\371\5\0\011\0\2\0    DOS floppy 720k, IBM
  6166. >0x1FE    leshort        0xAA55        \b, x86 hard disk boot sector
  6167. 19    string        \100\013\371\5\0\011\0\2\0    DOS floppy 1440k, mkdosfs
  6168. >0x1FE    leshort        0xAA55        \b, x86 hard disk boot sector
  6169.  
  6170. 19    string        \320\2\370\5\0\011\0\1\0    Atari-ST floppy 360k
  6171. 19    string        \240\5\371\5\0\011\0\2\0    Atari-ST floppy 720k
  6172.  
  6173. #  Valid media descriptor bytes for MS-DOS:
  6174. #
  6175. #     Byte   Capacity   Media Size and Type
  6176. #     -------------------------------------------------
  6177. #
  6178. #     F0     2.88 MB    3.5-inch, 2-sided, 36-sector
  6179. #     F0     1.44 MB    3.5-inch, 2-sided, 18-sector
  6180. #     F9     720K       3.5-inch, 2-sided, 9-sector
  6181. #     F9     1.2 MB     5.25-inch, 2-sided, 15-sector
  6182. #     FD     360K       5.25-inch, 2-sided, 9-sector
  6183. #     FF     320K       5.25-inch, 2-sided, 8-sector
  6184. #     FC     180K       5.25-inch, 1-sided, 9-sector
  6185. #     FE     160K       5.25-inch, 1-sided, 8-sector
  6186. #     FE     250K       8-inch, 1-sided, single-density
  6187. #     FD     500K       8-inch, 2-sided, single-density
  6188. #     FE     1.2 MB     8-inch, 2-sided, double-density
  6189. #     F8     -----      Fixed disk 
  6190. #
  6191. #     FC     xxxK       Apricot 70x1x9 boot disk.
  6192. #
  6193. # Originally a bitmap:
  6194. #  xxxxxxx0    Not two sided
  6195. #  xxxxxxx1    Double sided
  6196. #  xxxxxx0x    Not 8 SPT
  6197. #  xxxxxx1x    8 SPT
  6198. #  xxxxx0xx    Not Removable drive
  6199. #  xxxxx1xx    Removable drive
  6200. #  11111xxx    Must be one.
  6201. #
  6202. # But now it's rather random:
  6203. #  111111xx    Low density disk
  6204. #        00    SS, Not 8 SPT
  6205. #        01    DS, Not 8 SPT
  6206. #        10    SS, 8 SPT
  6207. #        11    DS, 8 SPT
  6208. #
  6209. #  11111001    Double density 3╜ floppy disk, high density 5╝
  6210. #  11110000    High density 3╜ floppy disk
  6211. #  11111000    Hard disk any format
  6212. #
  6213.  
  6214. # CDROM Filesystems
  6215. # Modified for UDF by gerardo.cacciari@gmail.com
  6216. 32769    string    CD001
  6217. !:mime    application/x-iso9660-image
  6218. >38913    string   !NSR0      ISO 9660 CD-ROM filesystem data
  6219. >38913    string    NSR0      UDF filesystem data
  6220. >>38917    string    1         (version 1.0)
  6221. >>38917    string    2         (version 1.5)
  6222. >>38917    string    3         (version 2.0)
  6223. >>38917    byte     >0x33      (unknown version, ID 0x%X)
  6224. >>38917    byte     <0x31      (unknown version, ID 0x%X)
  6225. # "application id" which appears to be used as a volume label
  6226. >32808    string    >\0       '%s'
  6227. >34816    string    \000CD001\001EL\ TORITO\ SPECIFICATION    (bootable)
  6228. 37633    string    CD001     ISO 9660 CD-ROM filesystem data (raw 2352 byte sectors)
  6229. !:mime    application/x-iso9660-image
  6230. 32776    string    CDROM     High Sierra CD-ROM filesystem data
  6231.  
  6232. # cramfs filesystem - russell@coker.com.au
  6233. 0       lelong    0x28cd3d45      Linux Compressed ROM File System data, little endian
  6234. >4      lelong  x size %lu
  6235. >8      lelong  &1 version #2
  6236. >8      lelong  &2 sorted_dirs
  6237. >8      lelong  &4 hole_support
  6238. >32     lelong  x CRC 0x%x,
  6239. >36     lelong  x edition %lu,
  6240. >40     lelong  x %lu blocks,
  6241. >44     lelong  x %lu files
  6242.  
  6243. 0       belong    0x28cd3d45      Linux Compressed ROM File System data, big endian
  6244. >4      belong  x size %lu
  6245. >8      belong  &1 version #2
  6246. >8      belong  &2 sorted_dirs
  6247. >8      belong  &4 hole_support
  6248. >32     belong  x CRC 0x%x,
  6249. >36     belong  x edition %lu,
  6250. >40     belong  x %lu blocks,
  6251. >44     belong  x %lu files
  6252.  
  6253. # reiserfs - russell@coker.com.au
  6254. 0x10034        string    ReIsErFs    ReiserFS V3.5
  6255. 0x10034        string    ReIsEr2Fs    ReiserFS V3.6
  6256. 0x10034        string    ReIsEr3Fs    ReiserFS V3.6.19
  6257. >0x1002c     leshort    x        block size %d
  6258. >0x10032    leshort    &2        (mounted or unclean)
  6259. >0x10000    lelong    x        num blocks %d
  6260. >0x10040    lelong    1        tea hash
  6261. >0x10040    lelong    2        yura hash
  6262. >0x10040    lelong    3        r5 hash
  6263.  
  6264. # JFFS - russell@coker.com.au
  6265. 0    lelong    0x34383931    Linux Journalled Flash File system, little endian
  6266. 0    belong    0x34383931    Linux Journalled Flash File system, big endian
  6267.  
  6268. # EST flat binary format (which isn't, but anyway)
  6269. # From: Mark Brown <broonie@sirena.org.uk>
  6270. 0    string    ESTFBINR    EST flat binary
  6271.  
  6272. # Aculab VoIP firmware
  6273. # From: Mark Brown <broonie@sirena.org.uk>
  6274. 0    string    VoIP\ Startup\ and    Aculab VoIP firmware
  6275. >35    string    x    format %s
  6276.  
  6277. # u-boot/PPCBoot image file
  6278. # From: Mark Brown <broonie@sirena.org.uk>
  6279. 0    belong    0x27051956    u-boot/PPCBoot image
  6280. >4    string  PPCBoot
  6281. >>12    string  x        version %s
  6282.  
  6283. # JFFS2 file system
  6284. 0    leshort    0x1984        Linux old jffs2 filesystem data little endian
  6285. 0    leshort    0x1985        Linux jffs2 filesystem data little endian
  6286.  
  6287. # Squashfs
  6288. 0    string    sqsh    Squashfs filesystem, big endian,
  6289. >28    beshort    x    version %d.
  6290. >30    beshort x    \b%d,
  6291. >28    beshort <3
  6292. >>8    belong    x    %d bytes,
  6293. >28    beshort >2
  6294. >>63    bequad x    %lld bytes,
  6295. #>>67    belong    x    %d bytes,
  6296. >4    belong    x    %d inodes,
  6297. >28    beshort <2
  6298. >>32    beshort    x    blocksize: %d bytes,
  6299. >28    beshort >1
  6300. >>51    belong    x    blocksize: %d bytes,
  6301. >39    bedate    x    created: %s
  6302. 0    string    hsqs    Squashfs filesystem, little endian,
  6303. >28    leshort    x    version %d.
  6304. >30    leshort    x    \b%d,
  6305. >28    leshort <3
  6306. >>8    lelong    x    %d bytes,
  6307. >28    leshort >2
  6308. >>63    lequad x    %lld bytes,
  6309. #>>63    lelong    x    %d bytes,
  6310. >4    lelong    x    %d inodes,
  6311. >28    leshort <2
  6312. >>32    leshort    x    blocksize: %d bytes,
  6313. >28    leshort >1
  6314. >>51    lelong    x    blocksize: %d bytes,
  6315. >39    ledate    x    created: %s
  6316.  
  6317. 0    string        td\000        floppy image data (TeleDisk)
  6318.  
  6319. # AFS Dump Magic
  6320. # From: Ty Sarna <tsarna@sarna.org> 
  6321. 0       string                  \x01\xb3\xa1\x13\x22    AFS Dump
  6322. >&0     belong                  x                       (v%d)
  6323. >>&0    byte                    0x76
  6324. >>>&0   belong                  x                       Vol %d,
  6325. >>>>&0  byte                    0x6e
  6326. >>>>>&0 string                  x                       %s
  6327. >>>>>>&1        byte            0x74
  6328. >>>>>>>&0       beshort         2
  6329. >>>>>>>>&4      bedate          x                       on: %s
  6330. >>>>>>>>&0      bedate          =0                      full dump
  6331. >>>>>>>>&0      bedate          !0                      incremental since: %s
  6332.  
  6333. #----------------------------------------------------------
  6334. # VMS backup savesets - gerardo.cacciari@gmail.com
  6335. #
  6336. 4            string  \x01\x00\x01\x00\x01\x00
  6337. >(0.s+16)    string  \x01\x01
  6338. >>&(&0.b+8)  byte    0x42       OpenVMS backup saveset data
  6339. >>>40        lelong  x          (block size %d,
  6340. >>>49        string  >\0        original name '%s',
  6341. >>>2         short   1024       VAX generated)
  6342. >>>2         short   2048       AXP generated)
  6343. >>>2         short   4096       I64 generated)
  6344.  
  6345. # Summary: Oracle Clustered Filesystem
  6346. # Created by: Aaron Botsis <redhat@digitalmafia.org>
  6347. 8    string        OracleCFS    Oracle Clustered Filesystem,
  6348. >4    long        x        rev %d
  6349. >0    long        x        \b.%d,
  6350. >560    string        x        label: %.64s,
  6351. >136    string        x        mountpoint: %.128s
  6352.  
  6353. # Summary: Oracle ASM tagged volume
  6354. # Created by: Aaron Botsis <redhat@digitalmafia.org>
  6355. 32    string        ORCLDISK    Oracle ASM Volume,
  6356. >40    string        x        Disk Name: %0.12s
  6357. 32    string        ORCLCLRD    Oracle ASM Volume (cleared),
  6358. >40    string        x        Disk Name: %0.12s
  6359.  
  6360. # Oracle Clustered Filesystem - Aaron Botsis <redhat@digitalmafia.org>
  6361. 8    string        OracleCFS    Oracle Clustered Filesystem,
  6362. >4    long        x        rev %d
  6363. >0    long        x        \b.%d,
  6364. >560    string        x        label: %.64s,
  6365. >136    string        x        mountpoint: %.128s
  6366.  
  6367. # Oracle ASM tagged volume - Aaron Botsis <redhat@digitalmafia.org>
  6368. 32    string        ORCLDISK    Oracle ASM Volume,
  6369. >40    string        x        Disk Name: %0.12s
  6370. 32    string        ORCLCLRD    Oracle ASM Volume (cleared),
  6371. >40    string        x        Disk Name: %0.12s
  6372.  
  6373. # Compaq/HP RILOE floppy image
  6374. # From: Dirk Jagdmann <doj@cubic.org>
  6375. 0    string    CPQRFBLO    Compaq/HP RILOE floppy image
  6376.  
  6377. #------------------------------------------------------------------------------
  6378. # Files-11 On-Disk Structure (OpenVMS file system) - gerardo.cacciari@gmail.com
  6379. # These bits come from LBN 1 (home block) of ODS-2 and ODS-5 volumes, which is
  6380. # mapped to VBN 2 of [000000]INDEXF.SYS;1
  6381. #
  6382. 1008    string          DECFILE11B      Files-11 On-Disk Structure
  6383. >525    byte            x               Level %d
  6384. >525    byte            x               (ODS-%d OpenVMS file system),
  6385. >984    string          x               volume label is '%-12.12s'
  6386.  
  6387. # From: Thomas Klausner <wiz@NetBSD.org>
  6388. # http://filext.com/file-extension/DAA
  6389. # describes the daa file format. The magic would be:
  6390. 0    string        DAA\x0\x0\x0\x0\x0    PowerISO Direct-Access-Archive
  6391.  
  6392. # From Albert Cahalan <acahalan@gmail.com>
  6393. # really le32 operation,destination,payloadsize (but quite predictable)
  6394. # 01 00 00 00 00 00 00 c0 00 02 00 00
  6395. 0    string        \1\0\0\0\0\0\0\300\0\2\0\0    Marvell Libertas firmware
  6396.  
  6397. # From Eric Sandeen
  6398. # GFS2
  6399. 0x10000         belong          0x01161970      GFS2 Filesystem
  6400. >0x10024        belong          x               (blocksize %d,
  6401. >0x10060        string          >\0             lockproto %s)
  6402.  
  6403. # BTRFS
  6404. 0x10040         string          _BHRfS_M        BTRFS Filesystem
  6405. >0x1012b        string          >\0             (label "%s",
  6406. >0x10090        lelong          x               sectorsize %d,
  6407. >0x10094        lelong          x               nodesize %d,
  6408. >0x10098        lelong          x               leafsize %d)
  6409.  
  6410.  
  6411. # dvdisaster's .ecc
  6412. # From: "Nelson A. de Oliveira" <naoliv@gmail.com>
  6413. 0    string    *dvdisaster*    dvdisaster error correction file
  6414.  
  6415. # Type:    CROM filesystem
  6416. # From:    Werner Fink <werner@suse.de>
  6417. 0    string    CROMFS    CROMFS
  6418. >6    string    >\0    \b version %2.2s,
  6419. >8    ulequad    >0    \b block data at %lld,
  6420. >16    ulequad    >0    \b fblock table at %lld,
  6421. >24    ulequad    >0    \b inode table at %lld,
  6422. >32    ulequad    >0    \b root at %lld,
  6423. >40    ulelong    >0    \b fblock size = %ld,
  6424. >44    ulelong    >0    \b block size = %ld,
  6425. >48    ulequad    >0    \b bytes = %lld
  6426.  
  6427. #------------------------------------------------------------------------------
  6428. # flash:    file(1) magic for Macromedia Flash file format
  6429. #
  6430. # See
  6431. #
  6432. #    http://www.macromedia.com/software/flash/open/
  6433. #
  6434. 0    string        FWS        Macromedia Flash data,
  6435. >3    byte        x        version %d
  6436. !:mime    application/x-shockwave-flash
  6437. 0    string        CWS        Macromedia Flash data (compressed),
  6438. !:mime    application/x-shockwave-flash
  6439. >3    byte        x        version %d
  6440. # From: Cal Peake <cp@absolutedigital.net>
  6441. 0    string        FLV        Macromedia Flash Video
  6442. !:mime    video/x-flv
  6443.  
  6444. #
  6445. # From Dave Wilson
  6446. 0    string AGD4\xbe\xb8\xbb\xcb\x00    Macromedia Freehand 9 Document
  6447. #------------------------------------------------------------------------------
  6448. # fonts:  file(1) magic for font data
  6449. #
  6450. 0    search/1    FONT        ASCII vfont text
  6451. 0    short        0436        Berkeley vfont data
  6452. 0    short        017001        byte-swapped Berkeley vfont data
  6453.  
  6454. # PostScript fonts (must precede "printer" entries), quinlan@yggdrasil.com
  6455. 0    string        %!PS-AdobeFont-1.    PostScript Type 1 font text
  6456. >20    string        >\0            (%s)
  6457. 6    string        %!PS-AdobeFont-1.    PostScript Type 1 font program data
  6458.  
  6459. # X11 font files in SNF (Server Natural Format) format
  6460. 0    belong        00000004        X11 SNF font data, MSB first
  6461. 0    lelong        00000004        X11 SNF font data, LSB first
  6462.  
  6463. # X11 Bitmap Distribution Format, from Daniel Quinlan (quinlan@yggdrasil.com)
  6464. 0    search/1    STARTFONT\         X11 BDF font text
  6465.  
  6466. # X11 fonts, from Daniel Quinlan (quinlan@yggdrasil.com)
  6467. # PCF must come before SGI additions ("MIPSEL MIPS-II COFF" collides)
  6468. 0    string        \001fcp            X11 Portable Compiled Font data
  6469. >12    byte        0x02            \b, LSB first
  6470. >12    byte        0x0a            \b, MSB first
  6471. 0    string        D1.0\015        X11 Speedo font data
  6472.  
  6473. #------------------------------------------------------------------------------
  6474. # FIGlet fonts and controlfiles
  6475. # From figmagic supplied with Figlet version 2.2
  6476. # "David E. O'Brien" <obrien@FreeBSD.ORG>
  6477. 0    string        flf        FIGlet font
  6478. >3    string        >2a        version %-2.2s
  6479. 0    string        flc        FIGlet controlfile
  6480. >3    string        >2a        version %-2.2s
  6481.  
  6482. # libGrx graphics lib fonts, from Albert Cahalan (acahalan@cs.uml.edu)
  6483. # Used with djgpp (DOS Gnu C++), sometimes Linux or Turbo C++
  6484. 0    belong        0x14025919    libGrx font data,
  6485. >8    leshort        x        %dx
  6486. >10    leshort        x        \b%d
  6487. >40    string        x        %s
  6488. # Misc. DOS VGA fonts, from Albert Cahalan (acahalan@cs.uml.edu)
  6489. 0    belong        0xff464f4e    DOS code page font data collection
  6490. 7    belong        0x00454741    DOS code page font data
  6491. 7    belong        0x00564944    DOS code page font data (from Linux?)
  6492. 4098    string        DOSFONT        DOSFONT2 encrypted font data
  6493.  
  6494. # downloadable fonts for browser (prints type) anthon@mnt.org
  6495. 0    string        PFR1        PFR1 font
  6496. >102    string        >0        \b: %s
  6497.  
  6498. # True Type fonts
  6499. 0    string    \000\001\000\000\000    TrueType font data
  6500.  
  6501. 0    string        \007\001\001\000Copyright\ (c)\ 199    Adobe Multiple Master font
  6502. 0    string        \012\001\001\000Copyright\ (c)\ 199    Adobe Multiple Master font
  6503.  
  6504. 0    string        ttcf        TrueType font collection data
  6505.  
  6506. # Opentype font data from Avi Bercovich
  6507. 0    string        OTTO        OpenType font data 
  6508.  
  6509. # G├╝rkan Seng├╝n <gurkan@linuks.mine.nu>, www.linuks.mine.nu 
  6510. 0    string        SplineFontDB:    Spline Font Database 
  6511. >14    string        x        version %s
  6512. # FORTRAN source
  6513. 0    regex/100    \^[Cc][\ \t]    FORTRAN program
  6514. !:mime    text/x-fortran
  6515. #------------------------------------------------------------------------------
  6516. # frame:  file(1) magic for FrameMaker files
  6517. #
  6518. # This stuff came on a FrameMaker demo tape, most of which is
  6519. # copyright, but this file is "published" as witness the following:
  6520. #
  6521. # Note that this is the Framemaker Maker Interchange Format, not the
  6522. # Normal format which would be application/vnd.framemaker.
  6523. #
  6524. 0    string        \<MakerFile    FrameMaker document
  6525. !:mime    application/x-mif
  6526. >11    string        5.5         (5.5
  6527. >11    string        5.0         (5.0
  6528. >11    string        4.0         (4.0
  6529. >11    string        3.0         (3.0
  6530. >11    string        2.0         (2.0
  6531. >11    string        1.0         (1.0
  6532. >14    byte        x          %c)
  6533. 0    string        \<MIFFile    FrameMaker MIF (ASCII) file
  6534. !:mime    application/x-mif
  6535. >9    string        4.0         (4.0)
  6536. >9    string        3.0         (3.0)
  6537. >9    string        2.0         (2.0)
  6538. >9    string        1.0         (1.x)
  6539. 0    search/1    \<MakerDictionary    FrameMaker Dictionary text
  6540. !:mime    application/x-mif
  6541. >17    string        3.0         (3.0)
  6542. >17    string        2.0         (2.0)
  6543. >17    string        1.0         (1.x)
  6544. 0    string        \<MakerScreenFont    FrameMaker Font file
  6545. !:mime    application/x-mif
  6546. >17    string        1.01         (%s)
  6547. 0    string        \<MML        FrameMaker MML file
  6548. !:mime    application/x-mif
  6549. 0    string        \<BookFile    FrameMaker Book file
  6550. !:mime    application/x-mif
  6551. >10    string        3.0         (3.0
  6552. >10    string        2.0         (2.0
  6553. >10    string        1.0         (1.0
  6554. >13    byte        x          %c)
  6555. # XXX - this book entry should be verified, if you find one, uncomment this
  6556. #0    string        \<Book\     FrameMaker Book (ASCII) file
  6557. #!:mime    application/x-mif
  6558. #>6    string        3.0         (3.0)
  6559. #>6    string        2.0         (2.0)
  6560. #>6    string        1.0         (1.0)
  6561. 0    string        \<Maker    Intermediate Print File    FrameMaker IPL file
  6562. !:mime    application/x-mif
  6563.  
  6564. #------------------------------------------------------------------------------
  6565. # freebsd:  file(1) magic for FreeBSD objects
  6566. #
  6567. # All new-style FreeBSD magic numbers are in host byte order (i.e.,
  6568. # little-endian on x86).
  6569. #
  6570. # XXX - this comes from the file "freebsd" in a recent FreeBSD version of
  6571. # "file"; it, and the NetBSD stuff in "netbsd", appear to use different
  6572. # schemes for distinguishing between executable images, shared libraries,
  6573. # and object files.
  6574. #
  6575. # FreeBSD says:
  6576. #
  6577. #    Regardless of whether it's pure, demand-paged, or none of the
  6578. #    above:
  6579. #
  6580. #    if the entry point is < 4096, then it's a shared library if
  6581. #    the "has run-time loader information" bit is set, and is
  6582. #    position-independent if the "is position-independent" bit
  6583. #    is set;
  6584. #
  6585. #    if the entry point is >= 4096 (or >4095, same thing), then it's
  6586. #    an executable, and is dynamically-linked if the "has run-time
  6587. #    loader information" bit is set.
  6588. #
  6589. # On x86, NetBSD says:
  6590. #
  6591. #    If it's neither pure nor demand-paged:
  6592. #
  6593. #    if it has the "has run-time loader information" bit set, it's
  6594. #    a dynamically-linked executable;
  6595. #
  6596. #    if it doesn't have that bit set, then:
  6597. #
  6598. #        if it has the "is position-independent" bit set, it's
  6599. #        position-independent;
  6600. #
  6601. #        if the entry point is non-zero, it's an executable, otherwise
  6602. #        it's an object file.
  6603. #
  6604. #    If it's pure:
  6605. #
  6606. #    if it has the "has run-time loader information" bit set, it's
  6607. #    a dynamically-linked executable, otherwise it's just an
  6608. #    executable.
  6609. #
  6610. #    If it's demand-paged:
  6611. #
  6612. #    if it has the "has run-time loader information" bit set,
  6613. #    then:
  6614. #
  6615. #        if the entry point is < 4096, it's a shared library;
  6616. #
  6617. #        if the entry point is = 4096 or > 4096 (i.e., >= 4096),
  6618. #        it's a dynamically-linked executable);
  6619. #
  6620. #    if it doesn't have the "has run-time loader information" bit
  6621. #    set, then it's just an executable.
  6622. #
  6623. # (On non-x86, NetBSD does much the same thing, except that it uses
  6624. # 8192 on 68K - except for "68k4k", which is presumably "68K with 4K
  6625. # pages - SPARC, and MIPS, presumably because Sun-3's and Sun-4's
  6626. # had 8K pages; dunno about MIPS.)
  6627. #
  6628. # I suspect the two will differ only in perverse and uninteresting cases
  6629. # ("shared" libraries that aren't demand-paged and whose pages probably
  6630. # won't actually be shared, executables with entry points <4096).
  6631. #
  6632. # I leave it to those more familiar with FreeBSD and NetBSD to figure out
  6633. # what the right answer is (although using ">4095", FreeBSD-style, is
  6634. # probably better than separately checking for "=4096" and ">4096",
  6635. # NetBSD-style).  (The old "netbsd" file analyzed FreeBSD demand paged
  6636. # executables using the NetBSD technique.)
  6637. #
  6638. 0    lelong&0377777777    041400407    FreeBSD/i386
  6639. >20    lelong            <4096
  6640. >>3    byte&0xC0        &0x80        shared library
  6641. >>3    byte&0xC0        0x40        PIC object
  6642. >>3    byte&0xC0        0x00        object
  6643. >20    lelong            >4095
  6644. >>3    byte&0x80        0x80        dynamically linked executable
  6645. >>3    byte&0x80        0x00        executable
  6646. >16    lelong            >0        not stripped
  6647.  
  6648. 0    lelong&0377777777    041400410    FreeBSD/i386 pure
  6649. >20    lelong            <4096
  6650. >>3    byte&0xC0        &0x80        shared library
  6651. >>3    byte&0xC0        0x40        PIC object
  6652. >>3    byte&0xC0        0x00        object
  6653. >20    lelong            >4095
  6654. >>3    byte&0x80        0x80        dynamically linked executable
  6655. >>3    byte&0x80        0x00        executable
  6656. >16    lelong            >0        not stripped
  6657.  
  6658. 0    lelong&0377777777    041400413    FreeBSD/i386 demand paged
  6659. >20    lelong            <4096
  6660. >>3    byte&0xC0        &0x80        shared library
  6661. >>3    byte&0xC0        0x40        PIC object
  6662. >>3    byte&0xC0        0x00        object
  6663. >20    lelong            >4095
  6664. >>3    byte&0x80        0x80        dynamically linked executable
  6665. >>3    byte&0x80        0x00        executable
  6666. >16    lelong            >0        not stripped
  6667.  
  6668. 0    lelong&0377777777    041400314    FreeBSD/i386 compact demand paged
  6669. >20    lelong            <4096
  6670. >>3    byte&0xC0        &0x80        shared library
  6671. >>3    byte&0xC0        0x40        PIC object
  6672. >>3    byte&0xC0        0x00        object
  6673. >20    lelong            >4095
  6674. >>3    byte&0x80        0x80        dynamically linked executable
  6675. >>3    byte&0x80        0x00        executable
  6676. >16    lelong            >0        not stripped
  6677.  
  6678. # XXX gross hack to identify core files
  6679. # cores start with a struct tss; we take advantage of the following:
  6680. # byte 7:     highest byte of the kernel stack pointer, always 0xfe
  6681. #      8/9:   kernel (ring 0) ss value, always 0x0010
  6682. #      10 - 27: ring 1 and 2 ss/esp, unused, thus always 0
  6683. #      28:    low order byte of the current PTD entry, always 0 since the
  6684. #             PTD is page-aligned
  6685. #
  6686. 7    string    \357\020\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0    FreeBSD/i386 a.out core file
  6687. >1039    string    >\0    from '%s'
  6688.  
  6689. # /var/run/ld.so.hints
  6690. # What are you laughing about?
  6691. 0    lelong            011421044151    ld.so hints file (Little Endian
  6692. >4    lelong            >0        \b, version %d)
  6693. >4    belong            <1        \b)
  6694. 0    belong            011421044151    ld.so hints file (Big Endian
  6695. >4    belong            >0        \b, version %d)
  6696. >4    belong            <1        \b)
  6697.  
  6698. #
  6699. # Files generated by FreeBSD scrshot(1)/vidcontrol(1) utilities
  6700. #
  6701. 0    string    SCRSHOT_    scrshot(1) screenshot,
  6702. >8    byte    x        version %d,
  6703. >9    byte    2        %d bytes in header,
  6704. >>10    byte    x        %d chars wide by
  6705. >>11    byte    x        %d chars high
  6706.  
  6707. #------------------------------------------------------------------------------
  6708. # fsav:  file(1) magic for datafellows fsav virus definition files
  6709. # Anthon van der Neut (anthon@mnt.org)
  6710.  
  6711. # ftp://ftp.f-prot.com/pub/{macrdef2.zip,nomacro.def}
  6712. 0    beshort        0x1575        fsav macro virus signatures
  6713. >8    leshort        >0        (%d-
  6714. >11    byte        >0        \b%02d-
  6715. >10    byte        >0        \b%02d)
  6716. # ftp://ftp.f-prot.com/pub/sign.zip
  6717. #10    ubyte        <12
  6718. #>9    ubyte        <32
  6719. #>>8    ubyte        0x0a
  6720. #>>>12    ubyte        0x07
  6721. #>>>>11    uleshort    >0        fsav DOS/Windows virus signatures (%d-
  6722. #>>>>10    byte        0        \b01-
  6723. #>>>>10    byte        1        \b02-
  6724. #>>>>10    byte        2        \b03-
  6725. #>>>>10    byte        3        \b04-
  6726. #>>>>10    byte        4        \b05-
  6727. #>>>>10    byte        5        \b06-
  6728. #>>>>10    byte        6        \b07-
  6729. #>>>>10    byte        7        \b08-
  6730. #>>>>10    byte        8        \b09-
  6731. #>>>>10    byte        9        \b10-
  6732. #>>>>10    byte        10        \b11-
  6733. #>>>>10    byte        11        \b12-
  6734. #>>>>9    ubyte        >0        \b%02d)
  6735. # ftp://ftp.f-prot.com/pub/sign2.zip
  6736. #0    ubyte        0x62        
  6737. #>1    ubyte        0xF5        
  6738. #>>2    ubyte        0x1        
  6739. #>>>3    ubyte        0x1        
  6740. #>>>>4    ubyte        0x0e        
  6741. #>>>>>13        ubyte    >0        fsav virus signatures
  6742. #>>>>>>11    ubyte    x        size 0x%02x
  6743. #>>>>>>12    ubyte    x        \b%02x
  6744. #>>>>>>13    ubyte    x        \b%02x bytes
  6745.  
  6746. # Joerg Jenderek: joerg dot jenderek at web dot de
  6747. # http://www.clamav.net/doc/latest/html/node45.html
  6748. # .cvd files start with a 512 bytes colon separated header
  6749. # ClamAV-VDB:buildDate:version:signaturesNumbers:functionalityLevelRequired:MD5:Signature:builder:buildTime
  6750. # + gzipped tarball files
  6751. 0    string        ClamAV-VDB:    
  6752. >11    string        >\0        Clam AntiVirus database %-.23s
  6753. >>34    string        :        
  6754. >>>35        string        !:    \b, version 
  6755. >>>>35        string        x     \b%-.1s
  6756. >>>>>36        string         !:    
  6757. >>>>>>36    string        x     \b%-.1s
  6758. >>>>>>>37    string        !:    
  6759. >>>>>>>>37    string        x     \b%-.1s
  6760. >>>>>>>>>38    string        !:    
  6761. >>>>>>>>>>38    string        x     \b%-.1s
  6762. >512    string        \037\213    \b, gzipped
  6763. >769    string        ustar\0        \b, tarred
  6764.  
  6765. # Type: Grisoft AVG AntiVirus
  6766. # From: David Newgas <david@newgas.net>
  6767. 0    string    AVG7_ANTIVIRUS_VAULT_FILE    AVG 7 Antivirus vault file data
  6768. #------------------------------------------------------------------------------
  6769. # games:  file(1) for games
  6770.  
  6771. # Fabio Bonelli <fabiobonelli@libero.it>
  6772. # Quake II - III data files
  6773. 0       string  IDP2            Quake II 3D Model file,
  6774. >20     long    x               %lu skin(s),
  6775. >8      long    x               (%lu x
  6776. >12     long    x         %lu),
  6777. >40     long    x               %lu frame(s),
  6778. >16     long    x               Frame size %lu bytes,
  6779. >24     long      x               %lu vertices/frame,
  6780. >28     long    x                %lu texture coordinates,
  6781. >32     long    x               %lu triangles/frame
  6782.  
  6783. 0       string  IBSP            Quake
  6784. >4      long    0x26            II Map file (BSP)
  6785. >4      long    0x2E          III Map file (BSP)
  6786.  
  6787. 0       string  IDS2            Quake II SP2 sprite file
  6788.  
  6789. #---------------------------------------------------------------------------
  6790. # Doom and Quake
  6791. # submitted by Nicolas Patrois
  6792.  
  6793. 0       string  \xcb\x1dBoom\xe6\xff\x03\x01    Boom or linuxdoom demo
  6794. # some doom lmp files don't match, I've got one beginning with \x6d\x02\x01\x01
  6795.  
  6796. 24      string  LxD\ 203        Linuxdoom save
  6797. >0      string  x       , name=%s
  6798. >44     string  x       , world=%s
  6799.  
  6800. # Quake
  6801.  
  6802. 0       string  PACK    Quake I or II world or extension
  6803. >8    lelong    >0    \b, %d entries
  6804.  
  6805. #0       string  -1\x0a  Quake I demo
  6806. #>30     string  x        version %.4s
  6807. #>61     string  x        level %s       
  6808.  
  6809. #0       string  5\x0a   Quake I save
  6810.  
  6811. # The levels
  6812.  
  6813. # Quake 1
  6814.  
  6815. 0    string    5\x0aIntroduction             Quake I save: start Introduction
  6816. 0    string    5\x0athe_Slipgate_Complex     Quake I save: e1m1 The slipgate complex
  6817. 0    string    5\x0aCastle_of_the_Damned     Quake I save: e1m2 Castle of the damned
  6818. 0    string    5\x0athe_Necropolis           Quake I save: e1m3 The necropolis
  6819. 0    string    5\x0athe_Grisly_Grotto        Quake I save: e1m4 The grisly grotto
  6820. 0    string    5\x0aZiggurat_Vertigo         Quake I save: e1m8 Ziggurat vertigo (secret)
  6821. 0    string    5\x0aGloom_Keep               Quake I save: e1m5 Gloom keep
  6822. 0    string    5\x0aThe_Door_To_Chthon       Quake I save: e1m6 The door to Chthon
  6823. 0    string    5\x0aThe_House_of_Chthon      Quake I save: e1m7 The house of Chthon
  6824. 0    string    5\x0athe_Installation         Quake I save: e2m1 The installation
  6825. 0    string    5\x0athe_Ogre_Citadel         Quake I save: e2m2 The ogre citadel
  6826. 0    string    5\x0athe_Crypt_of_Decay       Quake I save: e2m3 The crypt of decay (dopefish lives!)
  6827. 0    string    5\x0aUnderearth               Quake I save: e2m7 Underearth (secret)
  6828. 0    string    5\x0athe_Ebon_Fortress        Quake I save: e2m4 The ebon fortress
  6829. 0    string    5\x0athe_Wizard's_Manse       Quake I save: e2m5 The wizard's manse
  6830. 0    string    5\x0athe_Dismal_Oubliette     Quake I save: e2m6 The dismal oubliette
  6831. 0    string    5\x0aTermination_Central      Quake I save: e3m1 Termination central
  6832. 0    string    5\x0aVaults_of_Zin            Quake I save: e3m2 Vaults of Zin
  6833. 0    string    5\x0athe_Tomb_of_Terror       Quake I save: e3m3 The tomb of terror
  6834. 0    string    5\x0aSatan's_Dark_Delight     Quake I save: e3m4 Satan's dark delight
  6835. 0    string    5\x0athe_Haunted_Halls        Quake I save: e3m7 The haunted halls (secret)
  6836. 0    string    5\x0aWind_Tunnels             Quake I save: e3m5 Wind tunnels
  6837. 0    string    5\x0aChambers_of_Torment      Quake I save: e3m6 Chambers of torment
  6838. 0    string    5\x0athe_Sewage_System        Quake I save: e4m1 The sewage system
  6839. 0    string    5\x0aThe_Tower_of_Despair     Quake I save: e4m2 The tower of despair
  6840. 0    string    5\x0aThe_Elder_God_Shrine     Quake I save: e4m3 The elder god shrine
  6841. 0    string    5\x0athe_Palace_of_Hate       Quake I save: e4m4 The palace of hate
  6842. 0    string    5\x0aHell's_Atrium            Quake I save: e4m5 Hell's atrium
  6843. 0    string    5\x0athe_Nameless_City        Quake I save: e4m8 The nameless city (secret)
  6844. 0    string    5\x0aThe_Pain_Maze            Quake I save: e4m6 The pain maze
  6845. 0    string    5\x0aAzure_Agony              Quake I save: e4m7 Azure agony
  6846. 0    string    5\x0aShub-Niggurath's_Pit     Quake I save: end Shub-Niggurath's pit
  6847.  
  6848. # Quake DeathMatch levels
  6849.  
  6850. 0    string    5\x0aPlace_of_Two_Deaths     Quake I save: dm1 Place of two deaths
  6851. 0    string    5\x0aClaustrophobopolis         Quake I save: dm2 Claustrophobopolis
  6852. 0    string    5\x0aThe_Abandoned_Base         Quake I save: dm3 The abandoned base
  6853. 0    string    5\x0aThe_Bad_Place         Quake I save: dm4 The bad place
  6854. 0    string    5\x0aThe_Cistern         Quake I save: dm5 The cistern
  6855. 0    string    5\x0aThe_Dark_Zone         Quake I save: dm6 The dark zone
  6856.  
  6857. # Scourge of Armagon
  6858.  
  6859. 0    string    5\x0aCommand_HQ               Quake I save: start Command HQ
  6860. 0    string    5\x0aThe_Pumping_Station      Quake I save: hip1m1 The pumping station
  6861. 0    string    5\x0aStorage_Facility         Quake I save: hip1m2 Storage facility
  6862. 0    string    5\x0aMilitary_Complex         Quake I save: hip1m5 Military complex (secret)
  6863. 0    string    5\x0athe_Lost_Mine            Quake I save: hip1m3 The lost mine
  6864. 0    string    5\x0aResearch_Facility        Quake I save: hip1m4 Research facility
  6865. 0    string    5\x0aAncient_Realms           Quake I save: hip2m1 Ancient realms
  6866. 0    string    5\x0aThe_Gremlin's_Domain     Quake I save: hip2m6 The gremlin's domain (secret)
  6867. 0    string    5\x0aThe_Black_Cathedral      Quake I save: hip2m2 The black cathedral
  6868. 0    string    5\x0aThe_Catacombs            Quake I save: hip2m3 The catacombs
  6869. 0    string    5\x0athe_Crypt__              Quake I save: hip2m4 The crypt
  6870. 0    string    5\x0aMortum's_Keep            Quake I save: hip2m5 Mortum's keep
  6871. 0    string    5\x0aTur_Torment              Quake I save: hip3m1 Tur torment
  6872. 0    string    5\x0aPandemonium              Quake I save: hip3m2 Pandemonium
  6873. 0    string    5\x0aLimbo                    Quake I save: hip3m3 Limbo
  6874. 0    string    5\x0athe_Edge_of_Oblivion     Quake I save: hipdm1 The edge of oblivion (secret)
  6875. 0    string    5\x0aThe_Gauntlet             Quake I save: hip3m4 The gauntlet
  6876. 0    string    5\x0aArmagon's_Lair           Quake I save: hipend Armagon's lair
  6877.  
  6878. # Malice
  6879.  
  6880. 0    string    5\x0aThe_Academy      Quake I save: start The academy
  6881. 0    string    5\x0aThe_Lab          Quake I save: d1 The lab
  6882. 0    string    5\x0aArea_33          Quake I save: d1b Area 33
  6883. 0    string    5\x0aSECRET_MISSIONS  Quake I save: d3b Secret missions
  6884. 0    string    5\x0aThe_Hospital     Quake I save: d10 The hospital (secret)
  6885. 0    string    5\x0aThe_Genetics_Lab Quake I save: d11 The genetics lab (secret)
  6886. 0    string    5\x0aBACK_2_MALICE    Quake I save: d4b Back to Malice
  6887. 0    string    5\x0aArea44           Quake I save: d1c Area 44
  6888. 0    string    5\x0aTakahiro_Towers  Quake I save: d2 Takahiro towers
  6889. 0    string    5\x0aA_Rat's_Life     Quake I save: d3 A rat's life
  6890. 0    string    5\x0aInto_The_Flood   Quake I save: d4 Into the flood
  6891. 0    string    5\x0aThe_Flood        Quake I save: d5 The flood
  6892. 0    string    5\x0aNuclear_Plant    Quake I save: d6 Nuclear plant
  6893. 0    string    5\x0aThe_Incinerator_Plant    Quake I save: d7 The incinerator plant
  6894. 0    string    5\x0aThe_Foundry              Quake I save: d7b The foundry
  6895. 0    string    5\x0aThe_Underwater_Base      Quake I save: d8 The underwater base
  6896. 0    string    5\x0aTakahiro_Base            Quake I save: d9 Takahiro base
  6897. 0    string    5\x0aTakahiro_Laboratories    Quake I save: d12 Takahiro laboratories
  6898. 0    string    5\x0aStayin'_Alive    Quake I save: d13 Stayin' alive
  6899. 0    string    5\x0aB.O.S.S._HQ      Quake I save: d14 B.O.S.S. HQ
  6900. 0    string    5\x0aSHOWDOWN!        Quake I save: d15 Showdown!
  6901.  
  6902. # Malice DeathMatch levels
  6903.  
  6904. 0    string    5\x0aThe_Seventh_Precinct     Quake I save: ddm1 The seventh precinct
  6905. 0    string    5\x0aSub_Station         Quake I save: ddm2 Sub station
  6906. 0    string    5\x0aCrazy_Eights!         Quake I save: ddm3 Crazy eights!
  6907. 0    string    5\x0aEast_Side_Invertationa     Quake I save: ddm4 East side invertationa
  6908. 0    string    5\x0aSlaughterhouse         Quake I save: ddm5 Slaughterhouse
  6909. 0    string    5\x0aDOMINO             Quake I save: ddm6 Domino
  6910. 0    string    5\x0aSANDRA'S_LADDER         Quake I save: ddm7 Sandra's ladder
  6911.  
  6912.  
  6913. 0    string    MComprHD    MAME CHD compressed hard disk image,
  6914. >12    belong    x        version %lu
  6915.  
  6916. # doom - submitted by Jon Dowland
  6917.  
  6918. 0    string    =IWAD        doom main IWAD data
  6919. >4    lelong    x        containing %d lumps
  6920. 0    string    =PWAD        doom patch PWAD data
  6921. >4    lelong    x        containing %d lumps
  6922.  
  6923.  
  6924. # Summary: Warcraft 3 save
  6925. # Extension: .w3g
  6926. # Created by: "Nelson A. de Oliveira" <naoliv@gmail.com>
  6927. 0    string        Warcraft\ III\ recorded\ game    %s
  6928.  
  6929.  
  6930. # Summary: Warcraft 3 map
  6931. # Extension: .w3m
  6932. # Created by: "Nelson A. de Oliveira" <naoliv@gmail.com>
  6933. 0    string        HM3W        Warcraft III map file
  6934.  
  6935.  
  6936. # Summary: SGF Smart Game Format
  6937. # Extension: .sgf
  6938. # Reference: http://www.red-bean.com/sgf/
  6939. # Created by: Eduardo Sabbatella <eduardo_sabbatella@yahoo.com.ar>
  6940. # Modified by (1): Abel Cheung (regex, more game format)
  6941. # FIXME: Some games don't have GM (game type)
  6942. 0    regex        \\(;.*GM\\[[0-9]{1,2}\\]    Smart Game Format
  6943. >2    search/0x200    GM[
  6944. >>&0    string        1]    (Go)
  6945. >>&0    string        2]    (Othello)
  6946. >>&0    string        3]    (chess)
  6947. >>&0    string        4]    (Gomoku+Renju)
  6948. >>&0    string        5]    (Nine Men's Morris)
  6949. >>&0    string        6]    (Backgammon)
  6950. >>&0    string        7]    (Chinese chess)
  6951. >>&0    string        8]    (Shogi)
  6952. >>&0    string        9]    (Lines of Action)
  6953. >>&0    string        10]    (Ataxx)
  6954. >>&0    string        11]    (Hex)
  6955. >>&0    string        12]    (Jungle)
  6956. >>&0    string        13]    (Neutron)
  6957. >>&0    string        14]    (Philosopher's Football)
  6958. >>&0    string        15]    (Quadrature)
  6959. >>&0    string        16]    (Trax)
  6960. >>&0    string        17]    (Tantrix)
  6961. >>&0    string        18]    (Amazons)
  6962. >>&0    string        19]    (Octi)
  6963. >>&0    string        20]    (Gess)
  6964. >>&0    string        21]    (Twixt)
  6965. >>&0    string        22]    (Zertz)
  6966. >>&0    string        23]    (Plateau)
  6967. >>&0    string        24]    (Yinsh)
  6968. >>&0    string        25]    (Punct)
  6969. >>&0    string        26]    (Gobblet)
  6970. >>&0    string        27]    (hive)
  6971. >>&0    string        28]    (Exxit)
  6972. >>&0    string        29]    (Hnefatal)
  6973. >>&0    string        30]    (Kuba)
  6974. >>&0    string        31]    (Tripples)
  6975. >>&0    string        32]    (Chase)
  6976. >>&0    string        33]    (Tumbling Down)
  6977. >>&0    string        34]    (Sahara)
  6978. >>&0    string        35]    (Byte)
  6979. >>&0    string        36]    (Focus)
  6980. >>&0    string        37]    (Dvonn)
  6981. >>&0    string        38]    (Tamsk)
  6982. >>&0    string        39]    (Gipf)
  6983. >>&0    string        40]    (Kropki)
  6984.  
  6985.  
  6986. # Summary: Civilization 4 video
  6987. # Extension: .bik
  6988. # Created by: Abel Cheung <abelcheung@gmail.com>
  6989. 0    string    BIKi    Civilization 4 Video
  6990.  
  6991.  
  6992. ##############################################
  6993. # NetImmerse/Gamebryo game engine entries
  6994.  
  6995. # Summary: Gamebryo game engine file
  6996. # Extension: .nif, .kf
  6997. # Created by: Abel Cheung <abelcheung@gmail.com>
  6998. 0        string        Gamebryo\ File\ Format,\ Version\     Gamebryo game engine file
  6999. >&0        regex        [0-9a-z.]+                \b, version %s
  7000.  
  7001. # Summary: Gamebryo game engine file
  7002. # Extension: .kfm
  7003. # Created by: Abel Cheung <abelcheung@gmail.com>
  7004. 0        string        ;Gamebryo\ KFM\ File\ Version\         Gamebryo game engine animation File
  7005. >&0        regex        [0-9a-z.]+                \b, version %s
  7006.  
  7007. # Summary: NetImmerse game engine file
  7008. # Extension .nif
  7009. # Created by: Abel Cheung <abelcheung@gmail.com>
  7010. 0        string        NetImmerse\ File\ Format,\ Versio        
  7011. >&0        string        n\                     NetImmerse game engine file
  7012. >>&0        regex        [0-9a-z.]+                \b, version %s
  7013.  
  7014. # Type:    SGF Smart Game Format
  7015. # URL:    http://www.red-bean.com/sgf/
  7016. # From:    Eduardo Sabbatella <eduardo_sabbatella@yahoo.com.ar>
  7017. 2    regex/c    \\(;.*GM\\[[0-9]{1,2}\\]    Smart Game Format
  7018. >2    regex/c    GM\\[1\\]            - Go Game
  7019. >2    regex/c    GM\\[6\\]            - BackGammon Game
  7020. >2    regex/c    GM\\[11\\]            - Hex Game
  7021. >2    regex/c    GM\\[18\\]            - Amazons Game
  7022. >2    regex/c    GM\\[19\\]            - Octi Game
  7023. >2    regex/c    GM\\[20\\]            - Gess Game
  7024. >2    regex/c    GM\\[21\\]            - twix Game
  7025.  
  7026. #------------------------------------------------------------------------------
  7027. # gcc:  file(1) magic for GCC special files
  7028. #
  7029. 0    string        gpch        GCC precompiled header
  7030.  
  7031. # The version field is annoying.  It's 3 characters, not zero-terminated.
  7032. >5    byte        x            (version %c
  7033. >6    byte        x            \b%c
  7034. >7    byte        x            \b%c)
  7035.  
  7036. # 67 = 'C', 111 = 'o', 43 = '+', 79 = 'O'
  7037. >4    byte        67            for C
  7038. >4    byte        111            for Objective C
  7039. >4    byte        43            for C++
  7040. >4    byte        79            for Objective C++
  7041.  
  7042. #------------------------------------------------------------------------------
  7043. # GEOS files (Vidar Madsen, vidar@gimp.org)
  7044. # semi-commonly used in embedded and handheld systems.
  7045. 0    belong    0xc745c153    GEOS
  7046. >40    byte    1    executable
  7047. >40    byte    2    VMFile
  7048. >40    byte    3    binary
  7049. >40    byte    4    directory label
  7050. >40    byte    <1    unknown
  7051. >40    byte    >4    unknown
  7052. >4    string    >\0    \b, name "%s"
  7053. #>44    short    x    \b, version %d
  7054. #>46    short    x    \b.%d
  7055. #>48    short    x    \b, rev %d
  7056. #>50    short    x    \b.%d
  7057. #>52    short    x    \b, proto %d
  7058. #>54    short    x    \br%d
  7059. #>168    string    >\0    \b, copyright "%s"
  7060. #------------------------------------------------------------------------------
  7061. # GIMP Gradient: file(1) magic for the GIMP's gradient data files
  7062. # by Federico Mena <federico@nuclecu.unam.mx>
  7063.  
  7064. 0       string          GIMP\ Gradient  GIMP gradient data
  7065.  
  7066. #------------------------------------------------------------------------------
  7067. # XCF:  file(1) magic for the XCF image format used in the GIMP developed
  7068. #       by Spencer Kimball and Peter Mattis
  7069. #       ('Bucky' LaDieu, nega@vt.edu)
  7070.  
  7071. 0    string        gimp\ xcf    GIMP XCF image data,
  7072. !:mime    image/x-xcf
  7073. >9    string        file        version 0,
  7074. >9    string        v        version
  7075. >>10    string        >\0        %s,
  7076. >14    belong        x        %lu x
  7077. >18    belong        x        %lu,
  7078. >22     belong          0               RGB Color
  7079. >22     belong          1               Greyscale
  7080. >22     belong          2               Indexed Color
  7081. >22    belong        >2        Unknown Image Type.
  7082.  
  7083. #------------------------------------------------------------------------------
  7084. # XCF:  file(1) magic for the patterns used in the GIMP, developed
  7085. #       by Spencer Kimball and Peter Mattis
  7086. #       ('Bucky' LaDieu, nega@vt.edu)
  7087.  
  7088. 20      string          GPAT            GIMP pattern data,
  7089. >24     string          x               %s
  7090.  
  7091. #------------------------------------------------------------------------------
  7092. # XCF:  file(1) magic for the brushes used in the GIMP, developed
  7093. #       by Spencer Kimball and Peter Mattis
  7094. #       ('Bucky' LaDieu, nega@vt.edu)
  7095.  
  7096. 20      string          GIMP            GIMP brush data
  7097.  
  7098. # GIMP Curves File
  7099. # From: "Nelson A. de Oliveira" <naoliv@gmail.com>
  7100. 0    string    #\040GIMP\040Curves\040File    GIMP curve file
  7101. # GNOME keyring
  7102. # Contributed by Josh Triplett
  7103. # FIXME: Could be simplified if pstring supported two-byte counts
  7104. 0         string   GnomeKeyring\n\r\0\n GNOME keyring
  7105. >&0       ubyte    0                    \b, major version 0
  7106. >>&0      ubyte    0                    \b, minor version 0
  7107. >>>&0     ubyte    0                    \b, crypto type 0 (AEL)
  7108. >>>&0     ubyte    >0                   \b, crypto type %hhu (unknown)
  7109. >>>&1     ubyte    0                    \b, hash type 0 (MD5)
  7110. >>>&1     ubyte    >0                   \b, hash type %hhu (unknown)
  7111. >>>&2     ubelong  0xFFFFFFFF           \b, name NULL
  7112. >>>&2     ubelong  !0xFFFFFFFF
  7113. >>>>&-4   ubelong  >255                 \b, name too long for file's pstring type
  7114. >>>>&-4   ubelong  <256
  7115. >>>>>&-1  pstring  x                    \b, name "%s"
  7116. >>>>>>&0  ubeqdate x                    \b, last modified %s
  7117. >>>>>>&8  ubeqdate x                    \b, created %s
  7118. >>>>>>&16 ubelong  &1
  7119. >>>>>>>&0 ubelong  x                    \b, locked if idle for %u seconds
  7120. >>>>>>&16 ubelong  ^1                   \b, not locked if idle
  7121. >>>>>>&24 ubelong  x                    \b, hash iterations %u
  7122. >>>>>>&28 ubequad  x                    \b, salt %llu
  7123. >>>>>>&52 ubelong  x                    \b, %u item(s)
  7124. #------------------------------------------------------------------------------
  7125. # gnu:  file(1) magic for various GNU tools
  7126. #
  7127. # GNU nlsutils message catalog file format
  7128. #
  7129. 0    string        \336\22\4\225    GNU message catalog (little endian),
  7130. >4    lelong        x        revision %d,
  7131. >8    lelong        x        %d messages
  7132. 0    string        \225\4\22\336    GNU message catalog (big endian),
  7133. >4    belong        x        revision %d,
  7134. >8    belong        x        %d messages
  7135. # message catalogs, from Mitchum DSouza <m.dsouza@mrc-apu.cam.ac.uk>
  7136. 0    string        *nazgul*    Nazgul style compiled message catalog
  7137. >8    lelong        >0        \b, version %ld
  7138.  
  7139. # GnuPG
  7140. # The format is very similar to pgp
  7141. 0    string          \001gpg                 GPG key trust database
  7142. >4    byte            x                       version %d
  7143. # Note: magic.mime had 0x8501 for the next line instead of 0x8502
  7144. 0    beshort        0x8502            GPG encrypted data
  7145. !:mime    text/PGP # encoding: data
  7146.  
  7147. # This magic is not particularly good, as the keyrings don't have true
  7148. # magic. Nevertheless, it covers many keyrings.
  7149. 0       beshort         0x9901                  GPG key public ring
  7150. !:mime    application/x-gnupg-keyring
  7151.  
  7152. # Gnumeric spreadsheet
  7153. # This entry is only semi-helpful, as Gnumeric compresses its files, so
  7154. # they will ordinarily reported as "compressed", but at least -z helps
  7155. 39      string          =<gmr:Workbook           Gnumeric spreadsheet
  7156.  
  7157. # From: James Youngman <jay@gnu.org> 
  7158. # gnu find magic
  7159. 0    string    \0LOCATE    GNU findutils locate database data
  7160. >7    string    >\0        \b, format %s
  7161. >7    string    02        \b (frcode)
  7162.  
  7163. # Files produced by GNU gettext
  7164. 0    long    0xDE120495        GNU-format message catalog data
  7165. 0    long    0x950412DE        GNU-format message catalog data
  7166.  
  7167. #------------------------------------------------------------------------------
  7168. # gnumeric:  file(1) magic for Gnumeric spreadsheet
  7169. # This entry is only semi-helpful, as Gnumeric compresses its files, so
  7170. # they will ordinarily reported as "compressed", but at least -z helps
  7171. 39    string    =<gmr:Workbook    Gnumeric spreadsheet
  7172. !:mime    application/x-gnumeric
  7173.  
  7174. #------------------------------------------------------------------------------
  7175. # ACE/gr and Grace type files - PLEASE DO NOT REMOVE THIS LINE
  7176. #
  7177. # ACE/gr binary
  7178. 0    string    \000\000\0001\000\000\0000\000\000\0000\000\000\0002\000\000\0000\000\000\0000\000\000\0003        old ACE/gr binary file
  7179. >39    byte    >0            - version %c
  7180. # ACE/gr ascii
  7181. 0    string    #\ xvgr\ parameter\ file    ACE/gr ascii file
  7182. 0    string    #\ xmgr\ parameter\ file    ACE/gr ascii file
  7183. 0    string    #\ ACE/gr\ parameter\ file    ACE/gr ascii file
  7184. # Grace projects
  7185. 0    string    #\ Grace\ project\ file        Grace project file
  7186. >23    string    @version\              (version
  7187. >>32    byte    >0                 %c
  7188. >>33    string    >\0                 \b.%.2s
  7189. >>35    string    >\0                 \b.%.2s)
  7190. # ACE/gr fit description files
  7191. 0    string    #\ ACE/gr\ fit\ description\     ACE/gr fit description file
  7192. # end of ACE/gr and Grace type files - PLEASE DO NOT REMOVE THIS LINE
  7193. #------------------------------------------------------------------------------
  7194. # graphviz:  file(1) magic for http://www.graphviz.org/
  7195.  
  7196. # FIXME: These patterns match too generally. For example, the first
  7197. # line matches a LaTeX file containing the word "graph" (with a {
  7198. # following later) and the second line matches this file.
  7199. #0    regex/100    [\r\n\t\ ]*graph[\r\n\t\ ]+.*\\{    graphviz graph text
  7200. #!:mime    text/vnd.graphviz
  7201. #0    regex/100    [\r\n\t\ ]*digraph[\r\n\t\ ]+.*\\{    graphviz digraph text
  7202. #!:mime    text/vnd.graphviz
  7203.  
  7204. #------------------------------------------------------------------------------
  7205. # gringotts:  file(1) magic for Gringotts
  7206. # http://devel.pluto.linux.it/projects/Gringotts/
  7207. # author: Germano Rizzo <mano@pluto.linux.it>
  7208. #GRG3????Y
  7209. 0    string    GRG        Gringotts data file
  7210. #file format 1
  7211. >3    string        1        v.1, MCRYPT S2K, SERPENT crypt, SHA-256 hash, ZLib lvl.9
  7212. #file format 2
  7213. >3    string        2        v.2, MCRYPT S2K, 
  7214. >>8    byte&0x70    0x00        RIJNDAEL-128 crypt,
  7215. >>8    byte&0x70    0x10        SERPENT crypt,
  7216. >>8    byte&0x70    0x20        TWOFISH crypt, 
  7217. >>8    byte&0x70    0x30        CAST-256 crypt,
  7218. >>8    byte&0x70    0x40        SAFER+ crypt,
  7219. >>8    byte&0x70    0x50        LOKI97 crypt,
  7220. >>8    byte&0x70    0x60        3DES crypt,
  7221. >>8    byte&0x70    0x70        RIJNDAEL-256 crypt,
  7222. >>8    byte&0x08    0x00        SHA1 hash,
  7223. >>8    byte&0x08    0x08        RIPEMD-160 hash,
  7224. >>8    byte&0x04    0x00        ZLib
  7225. >>8    byte&0x04    0x04        BZip2
  7226. >>8    byte&0x03    0x00        lvl.0
  7227. >>8    byte&0x03    0x01        lvl.3
  7228. >>8    byte&0x03    0x02        lvl.6
  7229. >>8    byte&0x03    0x03        lvl.9
  7230. #file format 3
  7231. >3    string        3        v.3, OpenPGP S2K, 
  7232. >>8    byte&0x70    0x00        RIJNDAEL-128 crypt,
  7233. >>8    byte&0x70    0x10        SERPENT crypt,
  7234. >>8    byte&0x70    0x20        TWOFISH crypt, 
  7235. >>8    byte&0x70    0x30        CAST-256 crypt,
  7236. >>8    byte&0x70    0x40        SAFER+ crypt,
  7237. >>8    byte&0x70    0x50        LOKI97 crypt,
  7238. >>8    byte&0x70    0x60        3DES crypt,
  7239. >>8    byte&0x70    0x70        RIJNDAEL-256 crypt,
  7240. >>8    byte&0x08    0x00        SHA1 hash,
  7241. >>8    byte&0x08    0x08        RIPEMD-160 hash,
  7242. >>8    byte&0x04    0x00        ZLib
  7243. >>8    byte&0x04    0x04        BZip2
  7244. >>8    byte&0x03    0x00        lvl.0
  7245. >>8    byte&0x03    0x01        lvl.3
  7246. >>8    byte&0x03    0x02        lvl.6
  7247. >>8    byte&0x03    0x03        lvl.9
  7248. #file format >3
  7249. >3    string        >3        v.%.1s (unknown details)
  7250.  
  7251. #------------------------------------------------------------------------------
  7252. # hitach-sh: file(1) magic for Hitachi Super-H
  7253. #
  7254. # Super-H COFF
  7255. #
  7256. 0    beshort        0x0500        Hitachi SH big-endian COFF
  7257. >18    beshort&0x0002    =0x0000        object
  7258. >18    beshort&0x0002    =0x0002        executable
  7259. >18    beshort&0x0008    =0x0008        \b, stripped
  7260. >18    beshort&0x0008    =0x0000        \b, not stripped
  7261. #
  7262. 0    leshort        0x0550        Hitachi SH little-endian COFF
  7263. >18    leshort&0x0002    =0x0000        object
  7264. >18    leshort&0x0002    =0x0002        executable
  7265. >18    leshort&0x0008    =0x0008        \b, stripped
  7266. >18    leshort&0x0008    =0x0000        \b, not stripped
  7267.  
  7268. #------------------------------------------------------------------------------
  7269. # hp:  file(1) magic for Hewlett Packard machines (see also "printer")
  7270. #
  7271. # XXX - somebody should figure out whether any byte order needs to be
  7272. # applied to the "TML" stuff; I'm assuming the Apollo stuff is
  7273. # big-endian as it was mostly 68K-based.
  7274. #
  7275. # I think the 500 series was the old stack-based machines, running a
  7276. # UNIX environment atop the "SUN kernel"; dunno whether it was
  7277. # big-endian or little-endian.
  7278. #
  7279. # Daniel Quinlan (quinlan@yggdrasil.com): hp200 machines are 68010 based;
  7280. # hp300 are 68020+68881 based; hp400 are also 68k.  The following basic
  7281. # HP magic is useful for reference, but using "long" magic is a better
  7282. # practice in order to avoid collisions.
  7283. #
  7284. # Guy Harris (guy@netapp.com): some additions to this list came from
  7285. # HP-UX 10.0's "/usr/include/sys/unistd.h" (68030, 68040, PA-RISC 1.1,
  7286. # 1.2, and 2.0).  The 1.2 and 2.0 stuff isn't in the HP-UX 10.0
  7287. # "/etc/magic", though, except for the "archive file relocatable library"
  7288. # stuff, and the 68030 and 68040 stuff isn't there at all - are they not
  7289. # used in executables, or have they just not yet updated "/etc/magic"
  7290. # completely?
  7291. #
  7292. # 0    beshort        200        hp200 (68010) BSD binary
  7293. # 0    beshort        300        hp300 (68020+68881) BSD binary
  7294. # 0    beshort        0x20c        hp200/300 HP-UX binary
  7295. # 0    beshort        0x20d        hp400 (68030) HP-UX binary
  7296. # 0    beshort        0x20e        hp400 (68040?) HP-UX binary
  7297. # 0    beshort        0x20b        PA-RISC1.0 HP-UX binary
  7298. # 0    beshort        0x210        PA-RISC1.1 HP-UX binary
  7299. # 0    beshort        0x211        PA-RISC1.2 HP-UX binary
  7300. # 0    beshort        0x214        PA-RISC2.0 HP-UX binary
  7301.  
  7302. #
  7303. # The "misc" stuff needs a byte order; the archives look suspiciously
  7304. # like the old 177545 archives (0xff65 = 0177545).
  7305. #
  7306. #### Old Apollo stuff
  7307. 0    beshort        0627        Apollo m68k COFF executable
  7308. >18    beshort        ^040000        not stripped
  7309. >22    beshort        >0        - version %ld
  7310. 0    beshort        0624        apollo a88k COFF executable
  7311. >18    beshort        ^040000        not stripped
  7312. >22    beshort        >0        - version %ld
  7313. 0       long            01203604016     TML 0123 byte-order format
  7314. 0       long            01702407010     TML 1032 byte-order format
  7315. 0       long            01003405017     TML 2301 byte-order format
  7316. 0       long            01602007412     TML 3210 byte-order format
  7317. #### PA-RISC 1.1
  7318. 0    belong         0x02100106    PA-RISC1.1 relocatable object
  7319. 0    belong         0x02100107    PA-RISC1.1 executable
  7320. >168    belong        &0x00000004    dynamically linked
  7321. >(144)    belong        0x054ef630    dynamically linked
  7322. >96    belong        >0        - not stripped
  7323.  
  7324. 0    belong         0x02100108    PA-RISC1.1 shared executable
  7325. >168    belong&0x4    0x4        dynamically linked
  7326. >(144)    belong        0x054ef630    dynamically linked
  7327. >96    belong        >0        - not stripped
  7328.  
  7329. 0    belong         0x0210010b    PA-RISC1.1 demand-load executable
  7330. >168    belong&0x4    0x4        dynamically linked
  7331. >(144)    belong        0x054ef630    dynamically linked
  7332. >96    belong        >0        - not stripped
  7333.  
  7334. 0    belong         0x0210010e    PA-RISC1.1 shared library
  7335. >96    belong        >0        - not stripped
  7336.  
  7337. 0    belong         0x0210010d    PA-RISC1.1 dynamic load library
  7338. >96    belong        >0        - not stripped
  7339.  
  7340. #### PA-RISC 2.0
  7341. 0    belong        0x02140106    PA-RISC2.0 relocatable object
  7342.  
  7343. 0       belong        0x02140107    PA-RISC2.0 executable
  7344. >168    belong        &0x00000004    dynamically linked
  7345. >(144)    belong        0x054ef630    dynamically linked
  7346. >96    belong        >0        - not stripped
  7347.  
  7348. 0       belong        0x02140108    PA-RISC2.0 shared executable
  7349. >168    belong        &0x00000004    dynamically linked
  7350. >(144)    belong        0x054ef630    dynamically linked
  7351. >96    belong        >0        - not stripped
  7352.  
  7353. 0       belong        0x0214010b    PA-RISC2.0 demand-load executable
  7354. >168    belong        &0x00000004    dynamically linked
  7355. >(144)    belong        0x054ef630    dynamically linked
  7356. >96    belong        >0        - not stripped
  7357.  
  7358. 0       belong        0x0214010e    PA-RISC2.0 shared library
  7359. >96    belong        >0        - not stripped
  7360.  
  7361. 0       belong        0x0214010d    PA-RISC2.0 dynamic load library
  7362. >96    belong        >0        - not stripped
  7363.  
  7364. #### 800
  7365. 0    belong         0x020b0106    PA-RISC1.0 relocatable object
  7366.  
  7367. 0    belong         0x020b0107    PA-RISC1.0 executable
  7368. >168    belong&0x4    0x4        dynamically linked
  7369. >(144)    belong        0x054ef630    dynamically linked
  7370. >96    belong        >0        - not stripped
  7371.  
  7372. 0    belong         0x020b0108    PA-RISC1.0 shared executable
  7373. >168    belong&0x4    0x4        dynamically linked
  7374. >(144)    belong        0x054ef630    dynamically linked
  7375. >96    belong        >0        - not stripped
  7376.  
  7377. 0    belong         0x020b010b    PA-RISC1.0 demand-load executable
  7378. >168    belong&0x4    0x4        dynamically linked
  7379. >(144)    belong        0x054ef630    dynamically linked
  7380. >96    belong        >0        - not stripped
  7381.  
  7382. 0    belong         0x020b010e    PA-RISC1.0 shared library
  7383. >96    belong        >0        - not stripped
  7384.  
  7385. 0    belong         0x020b010d    PA-RISC1.0 dynamic load library
  7386. >96    belong        >0        - not stripped
  7387.  
  7388. 0    belong        0x213c6172    archive file
  7389. >68    belong         0x020b0619    - PA-RISC1.0 relocatable library
  7390. >68    belong         0x02100619    - PA-RISC1.1 relocatable library
  7391. >68    belong         0x02110619    - PA-RISC1.2 relocatable library
  7392. >68    belong         0x02140619    - PA-RISC2.0 relocatable library
  7393.  
  7394. #### 500
  7395. 0    long        0x02080106    HP s500 relocatable executable
  7396. >16    long        >0        - version %ld
  7397.  
  7398. 0    long        0x02080107    HP s500 executable
  7399. >16    long        >0        - version %ld
  7400.  
  7401. 0    long        0x02080108    HP s500 pure executable
  7402. >16    long        >0        - version %ld
  7403.  
  7404. #### 200
  7405. 0    belong         0x020c0108    HP s200 pure executable
  7406. >4    beshort        >0        - version %ld
  7407. >8    belong        &0x80000000    save fp regs
  7408. >8    belong        &0x40000000    dynamically linked
  7409. >8    belong        &0x20000000    debuggable
  7410. >36    belong        >0        not stripped
  7411.  
  7412. 0    belong        0x020c0107    HP s200 executable
  7413. >4    beshort        >0        - version %ld
  7414. >8    belong        &0x80000000    save fp regs
  7415. >8    belong        &0x40000000    dynamically linked
  7416. >8    belong        &0x20000000    debuggable
  7417. >36    belong        >0        not stripped
  7418.  
  7419. 0    belong        0x020c010b    HP s200 demand-load executable
  7420. >4    beshort        >0        - version %ld
  7421. >8    belong        &0x80000000    save fp regs
  7422. >8    belong        &0x40000000    dynamically linked
  7423. >8    belong        &0x20000000    debuggable
  7424. >36    belong        >0        not stripped
  7425.  
  7426. 0    belong        0x020c0106    HP s200 relocatable executable
  7427. >4    beshort        >0        - version %ld
  7428. >6    beshort        >0        - highwater %d
  7429. >8    belong        &0x80000000    save fp regs
  7430. >8    belong        &0x20000000    debuggable
  7431. >8    belong        &0x10000000    PIC
  7432.  
  7433. 0    belong         0x020a0108    HP s200 (2.x release) pure executable
  7434. >4    beshort        >0        - version %ld
  7435. >36    belong        >0        not stripped
  7436.  
  7437. 0    belong        0x020a0107    HP s200 (2.x release) executable
  7438. >4    beshort        >0        - version %ld
  7439. >36    belong        >0        not stripped
  7440.  
  7441. 0    belong        0x020c010e    HP s200 shared library
  7442. >4    beshort        >0        - version %ld
  7443. >6    beshort        >0        - highwater %d
  7444. >36    belong        >0        not stripped
  7445.  
  7446. 0    belong        0x020c010d    HP s200 dynamic load library
  7447. >4    beshort        >0        - version %ld
  7448. >6    beshort        >0        - highwater %d
  7449. >36    belong        >0        not stripped
  7450.  
  7451. #### MISC
  7452. 0    long        0x0000ff65    HP old archive
  7453. 0    long        0x020aff65    HP s200 old archive
  7454. 0    long        0x020cff65    HP s200 old archive
  7455. 0    long        0x0208ff65    HP s500 old archive
  7456.  
  7457. 0    long        0x015821a6    HP core file
  7458.  
  7459. 0    long        0x4da7eee8    HP-WINDOWS font
  7460. >8    byte        >0        - version %ld
  7461. 0    string        Bitmapfile    HP Bitmapfile
  7462.  
  7463. 0    string        IMGfile    CIS     compimg HP Bitmapfile
  7464. # XXX - see "lif"
  7465. #0    short        0x8000        lif file
  7466. 0    long        0x020c010c    compiled Lisp
  7467.  
  7468. 0    string        msgcat01    HP NLS message catalog,
  7469. >8    long        >0        %d messages
  7470.  
  7471. # Summary: HP-48/49 calculator
  7472. # Created by: phk@data.fls.dk
  7473. # Modified by (1): AMAKAWA Shuhei <sa264@cam.ac.uk>
  7474. # Modified by (2): Samuel Thibault <samuel.thibault@ens-lyon.org> (HP49 support)
  7475. 0    string        HPHP        HP
  7476. >4    string        48        48 binary
  7477. >4    string        49        49 binary
  7478. >7    byte        >64        - Rev %c
  7479. >8    leshort        0x2911        (ADR)
  7480. >8    leshort        0x2933        (REAL)
  7481. >8    leshort        0x2955        (LREAL)
  7482. >8    leshort        0x2977        (COMPLX)
  7483. >8    leshort        0x299d        (LCOMPLX)
  7484. >8    leshort        0x29bf        (CHAR)
  7485. >8    leshort        0x29e8        (ARRAY)
  7486. >8    leshort        0x2a0a        (LNKARRAY)
  7487. >8    leshort        0x2a2c        (STRING)
  7488. >8    leshort        0x2a4e        (HXS)
  7489. >8    leshort        0x2a74        (LIST)
  7490. >8    leshort        0x2a96        (DIR)
  7491. >8    leshort        0x2ab8        (ALG)
  7492. >8    leshort        0x2ada        (UNIT)
  7493. >8    leshort        0x2afc        (TAGGED)
  7494. >8    leshort        0x2b1e        (GROB)
  7495. >8    leshort        0x2b40        (LIB)
  7496. >8    leshort        0x2b62        (BACKUP)
  7497. >8    leshort        0x2b88        (LIBDATA)
  7498. >8    leshort        0x2d9d        (PROG)
  7499. >8    leshort        0x2dcc        (CODE)
  7500. >8    leshort        0x2e48        (GNAME)
  7501. >8    leshort        0x2e6d        (LNAME)
  7502. >8    leshort        0x2e92        (XLIB)
  7503.  
  7504. 0    string        %%HP:        HP text
  7505. >6    string        T(0)        - T(0)
  7506. >6    string        T(1)        - T(1)
  7507. >6    string        T(2)        - T(2)
  7508. >6    string        T(3)        - T(3)
  7509. >10    string        A(D)        A(D)
  7510. >10    string        A(R)        A(R)
  7511. >10    string        A(G)        A(G)
  7512. >14    string        F(.)        F(.);
  7513. >14    string        F(,)        F(,);
  7514.  
  7515.  
  7516. # Summary: HP-38/39 calculator
  7517. # Created by: Samuel Thibault <samuel.thibault@ens-lyon.org>
  7518. 0    string        HP3
  7519. >3    string        8        HP 38
  7520. >3    string        9        HP 39
  7521. >4    string        Bin        binary
  7522. >4    string        Asc        ASCII
  7523. >7    string        A        (Directory List)
  7524. >7    string        B        (Zaplet)
  7525. >7    string        C        (Note)
  7526. >7    string        D        (Program)
  7527. >7    string        E        (Variable)
  7528. >7    string        F        (List)
  7529. >7    string        G        (Matrix)
  7530. >7    string        H        (Library)
  7531. >7    string        I        (Target List)
  7532. >7    string        J        (ASCII Vector specification)
  7533. >7    string        K        (wildcard)
  7534.  
  7535. # Summary: HP-38/39 calculator
  7536. # Created by: Samuel Thibault <samuel.thibault@ens-lyon.org>
  7537. 0    string        HP3
  7538. >3    string        8        HP 38
  7539. >3    string        9        HP 39
  7540. >4    string        Bin        binary
  7541. >4    string        Asc        ASCII
  7542. >7    string        A        (Directory List)
  7543. >7    string        B        (Zaplet)
  7544. >7    string        C        (Note)
  7545. >7    string        D        (Program)
  7546. >7    string        E        (Variable)
  7547. >7    string        F        (List)
  7548. >7    string        G        (Matrix)
  7549. >7    string        H        (Library)
  7550. >7    string        I        (Target List)
  7551. >7    string        J        (ASCII Vector specification)
  7552. >7    string        K        (wildcard)
  7553.  
  7554. # hpBSD magic numbers
  7555. 0    beshort        200        hp200 (68010) BSD
  7556. >2    beshort        0407        impure binary
  7557. >2    beshort        0410        read-only binary
  7558. >2    beshort        0413        demand paged binary
  7559. 0    beshort        300        hp300 (68020+68881) BSD
  7560. >2    beshort        0407        impure binary
  7561. >2    beshort        0410        read-only binary
  7562. >2    beshort        0413        demand paged binary
  7563. #
  7564. # From David Gero <dgero@nortelnetworks.com>
  7565. # HP-UX 10.20 core file format from /usr/include/sys/core.h
  7566. # Unfortunately, HP-UX uses corehead blocks without specifying the order
  7567. # There are four we care about:
  7568. #     CORE_KERNEL, which starts with the string "HP-UX"
  7569. #     CORE_EXEC, which contains the name of the command
  7570. #     CORE_PROC, which contains the signal number that caused the core dump
  7571. #     CORE_FORMAT, which contains the version of the core file format (== 1)
  7572. # The only observed order in real core files is KERNEL, EXEC, FORMAT, PROC
  7573. # but we include all 6 variations of the order of the first 3, and
  7574. # assume that PROC will always be last
  7575. # Order 1: KERNEL, EXEC, FORMAT, PROC
  7576. 0x10        string    HP-UX
  7577. >0        belong    2
  7578. >>0xC        belong    0x3C
  7579. >>>0x4C        belong    0x100
  7580. >>>>0x58    belong    0x44
  7581. >>>>>0xA0    belong    1
  7582. >>>>>>0xAC    belong    4
  7583. >>>>>>>0xB0    belong    1
  7584. >>>>>>>>0xB4    belong    4        core file
  7585. >>>>>>>>>0x90    string    >\0        from '%s'
  7586. >>>>>>>>>0xC4    belong    3        - received SIGQUIT
  7587. >>>>>>>>>0xC4    belong    4        - received SIGILL
  7588. >>>>>>>>>0xC4    belong    5        - received SIGTRAP
  7589. >>>>>>>>>0xC4    belong    6        - received SIGABRT
  7590. >>>>>>>>>0xC4    belong    7        - received SIGEMT
  7591. >>>>>>>>>0xC4    belong    8        - received SIGFPE
  7592. >>>>>>>>>0xC4    belong    10        - received SIGBUS
  7593. >>>>>>>>>0xC4    belong    11        - received SIGSEGV
  7594. >>>>>>>>>0xC4    belong    12        - received SIGSYS
  7595. >>>>>>>>>0xC4    belong    33        - received SIGXCPU
  7596. >>>>>>>>>0xC4    belong    34        - received SIGXFSZ
  7597. # Order 2: KERNEL, FORMAT, EXEC, PROC
  7598. >>>0x4C        belong    1
  7599. >>>>0x58    belong    4
  7600. >>>>>0x5C    belong    1
  7601. >>>>>>0x60    belong    0x100
  7602. >>>>>>>0x6C    belong    0x44
  7603. >>>>>>>>0xB4    belong    4        core file
  7604. >>>>>>>>>0xA4    string    >\0        from '%s'
  7605. >>>>>>>>>0xC4    belong    3        - received SIGQUIT
  7606. >>>>>>>>>0xC4    belong    4        - received SIGILL
  7607. >>>>>>>>>0xC4    belong    5        - received SIGTRAP
  7608. >>>>>>>>>0xC4    belong    6        - received SIGABRT
  7609. >>>>>>>>>0xC4    belong    7        - received SIGEMT
  7610. >>>>>>>>>0xC4    belong    8        - received SIGFPE
  7611. >>>>>>>>>0xC4    belong    10        - received SIGBUS
  7612. >>>>>>>>>0xC4    belong    11        - received SIGSEGV
  7613. >>>>>>>>>0xC4    belong    12        - received SIGSYS
  7614. >>>>>>>>>0xC4    belong    33        - received SIGXCPU
  7615. >>>>>>>>>0xC4    belong    34        - received SIGXFSZ
  7616. # Order 3: FORMAT, KERNEL, EXEC, PROC
  7617. 0x24        string    HP-UX
  7618. >0        belong    1
  7619. >>0xC        belong    4
  7620. >>>0x10        belong    1
  7621. >>>>0x14    belong    2
  7622. >>>>>0x20    belong    0x3C
  7623. >>>>>>0x60    belong    0x100
  7624. >>>>>>>0x6C    belong    0x44
  7625. >>>>>>>>0xB4    belong    4        core file
  7626. >>>>>>>>>0xA4    string    >\0        from '%s'
  7627. >>>>>>>>>0xC4    belong    3        - received SIGQUIT
  7628. >>>>>>>>>0xC4    belong    4        - received SIGILL
  7629. >>>>>>>>>0xC4    belong    5        - received SIGTRAP
  7630. >>>>>>>>>0xC4    belong    6        - received SIGABRT
  7631. >>>>>>>>>0xC4    belong    7        - received SIGEMT
  7632. >>>>>>>>>0xC4    belong    8        - received SIGFPE
  7633. >>>>>>>>>0xC4    belong    10        - received SIGBUS
  7634. >>>>>>>>>0xC4    belong    11        - received SIGSEGV
  7635. >>>>>>>>>0xC4    belong    12        - received SIGSYS
  7636. >>>>>>>>>0xC4    belong    33        - received SIGXCPU
  7637. >>>>>>>>>0xC4    belong    34        - received SIGXFSZ
  7638. # Order 4: EXEC, KERNEL, FORMAT, PROC
  7639. 0x64        string    HP-UX
  7640. >0        belong    0x100
  7641. >>0xC        belong    0x44
  7642. >>>0x54        belong    2
  7643. >>>>0x60    belong    0x3C
  7644. >>>>>0xA0    belong    1
  7645. >>>>>>0xAC    belong    4
  7646. >>>>>>>0xB0    belong    1
  7647. >>>>>>>>0xB4    belong    4        core file
  7648. >>>>>>>>>0x44    string    >\0        from '%s'
  7649. >>>>>>>>>0xC4    belong    3        - received SIGQUIT
  7650. >>>>>>>>>0xC4    belong    4        - received SIGILL
  7651. >>>>>>>>>0xC4    belong    5        - received SIGTRAP
  7652. >>>>>>>>>0xC4    belong    6        - received SIGABRT
  7653. >>>>>>>>>0xC4    belong    7        - received SIGEMT
  7654. >>>>>>>>>0xC4    belong    8        - received SIGFPE
  7655. >>>>>>>>>0xC4    belong    10        - received SIGBUS
  7656. >>>>>>>>>0xC4    belong    11        - received SIGSEGV
  7657. >>>>>>>>>0xC4    belong    12        - received SIGSYS
  7658. >>>>>>>>>0xC4    belong    33        - received SIGXCPU
  7659. >>>>>>>>>0xC4    belong    34        - received SIGXFSZ
  7660. # Order 5: FORMAT, EXEC, KERNEL, PROC
  7661. 0x78        string    HP-UX
  7662. >0        belong    1
  7663. >>0xC        belong    4
  7664. >>>0x10        belong    1
  7665. >>>>0x14    belong    0x100
  7666. >>>>>0x20    belong    0x44
  7667. >>>>>>0x68    belong    2
  7668. >>>>>>>0x74    belong    0x3C
  7669. >>>>>>>>0xB4    belong    4        core file
  7670. >>>>>>>>>0x58    string    >\0        from '%s'
  7671. >>>>>>>>>0xC4    belong    3        - received SIGQUIT
  7672. >>>>>>>>>0xC4    belong    4        - received SIGILL
  7673. >>>>>>>>>0xC4    belong    5        - received SIGTRAP
  7674. >>>>>>>>>0xC4    belong    6        - received SIGABRT
  7675. >>>>>>>>>0xC4    belong    7        - received SIGEMT
  7676. >>>>>>>>>0xC4    belong    8        - received SIGFPE
  7677. >>>>>>>>>0xC4    belong    10        - received SIGBUS
  7678. >>>>>>>>>0xC4    belong    11        - received SIGSEGV
  7679. >>>>>>>>>0xC4    belong    12        - received SIGSYS
  7680. >>>>>>>>>0xC4    belong    33        - received SIGXCPU
  7681. >>>>>>>>>0xC4    belong    34        - received SIGXFSZ
  7682. # Order 6: EXEC, FORMAT, KERNEL, PROC
  7683. >0        belong    0x100
  7684. >>0xC        belong    0x44
  7685. >>>0x54        belong    1
  7686. >>>>0x60    belong    4
  7687. >>>>>0x64    belong    1
  7688. >>>>>>0x68    belong    2
  7689. >>>>>>>0x74    belong    0x2C
  7690. >>>>>>>>0xB4    belong    4        core file
  7691. >>>>>>>>>0x44    string    >\0        from '%s'
  7692. >>>>>>>>>0xC4    belong    3        - received SIGQUIT
  7693. >>>>>>>>>0xC4    belong    4        - received SIGILL
  7694. >>>>>>>>>0xC4    belong    5        - received SIGTRAP
  7695. >>>>>>>>>0xC4    belong    6        - received SIGABRT
  7696. >>>>>>>>>0xC4    belong    7        - received SIGEMT
  7697. >>>>>>>>>0xC4    belong    8        - received SIGFPE
  7698. >>>>>>>>>0xC4    belong    10        - received SIGBUS
  7699. >>>>>>>>>0xC4    belong    11        - received SIGSEGV
  7700. >>>>>>>>>0xC4    belong    12        - received SIGSYS
  7701. >>>>>>>>>0xC4    belong    33        - received SIGXCPU
  7702. >>>>>>>>>0xC4    belong    34        - received SIGXFSZ
  7703.  
  7704.  
  7705.  
  7706. #------------------------------------------------------------------------------
  7707. # human68k:  file(1) magic for Human68k (X680x0 DOS) binary formats
  7708. # Magic too short!
  7709. #0        string    HU        Human68k
  7710. #>68        string    LZX        LZX compressed
  7711. #>>72        string    >\0        (version %s)
  7712. #>(8.L+74)    string    LZX        LZX compressed
  7713. #>>(8.L+78)    string    >\0        (version %s)
  7714. #>60        belong    >0        binded
  7715. #>(8.L+66)    string    #HUPAIR        hupair
  7716. #>0        string    HU        X executable
  7717. #>(8.L+74)    string    #LIBCV1        - linked PD LIBC ver 1
  7718. #>4        belong    >0        - base address 0x%x
  7719. #>28        belong    >0        not stripped
  7720. #>32        belong    >0        with debug information
  7721. #0        beshort    0x601a        Human68k Z executable
  7722. #0        beshort    0x6000        Human68k object file
  7723. #0        belong    0xd1000000    Human68k ar binary archive
  7724. #0        belong    0xd1010000    Human68k ar ascii archive
  7725. #0        beshort    0x0068        Human68k lib archive
  7726. #4        string    LZX        Human68k LZX compressed
  7727. #>8        string    >\0        (version %s)
  7728. #>4        string    LZX        R executable
  7729. #2        string    #HUPAIR        Human68k hupair R executable
  7730.  
  7731. #------------------------------------------------------------------------------
  7732. # ibm370:  file(1) magic for IBM 370 and compatibles.
  7733. #
  7734. # "ibm370" said that 0x15d == 0535 was "ibm 370 pure executable".
  7735. # What the heck *is* "USS/370"?
  7736. # AIX 4.1's "/etc/magic" has
  7737. #
  7738. #    0    short        0535        370 sysV executable 
  7739. #    >12    long        >0        not stripped
  7740. #    >22    short        >0        - version %d
  7741. #    >30    long        >0        - 5.2 format
  7742. #    0    short        0530        370 sysV pure executable 
  7743. #    >12    long        >0        not stripped
  7744. #    >22    short        >0        - version %d
  7745. #    >30    long        >0        - 5.2 format
  7746. #
  7747. # instead of the "USS/370" versions of the same magic numbers.
  7748. #
  7749. 0    beshort        0537        370 XA sysV executable 
  7750. >12    belong        >0        not stripped
  7751. >22    beshort        >0        - version %d
  7752. >30    belong        >0        - 5.2 format
  7753. 0    beshort        0532        370 XA sysV pure executable 
  7754. >12    belong        >0        not stripped
  7755. >22    beshort        >0        - version %d
  7756. >30    belong        >0        - 5.2 format
  7757. 0    beshort        054001        370 sysV pure executable
  7758. >12    belong        >0        not stripped
  7759. 0    beshort        055001        370 XA sysV pure executable
  7760. >12    belong        >0        not stripped
  7761. 0    beshort        056401        370 sysV executable
  7762. >12    belong        >0        not stripped
  7763. 0    beshort        057401        370 XA sysV executable
  7764. >12    belong        >0        not stripped
  7765. 0       beshort        0531        SVR2 executable (Amdahl-UTS)
  7766. >12    belong        >0        not stripped
  7767. >24     belong        >0        - version %ld
  7768. 0    beshort        0534        SVR2 pure executable (Amdahl-UTS)
  7769. >12    belong        >0        not stripped
  7770. >24    belong        >0        - version %ld
  7771. 0    beshort        0530        SVR2 pure executable (USS/370)
  7772. >12    belong        >0        not stripped
  7773. >24    belong        >0        - version %ld
  7774. 0    beshort        0535        SVR2 executable (USS/370)
  7775. >12    belong        >0        not stripped
  7776. >24    belong        >0        - version %ld
  7777.  
  7778. #------------------------------------------------------------------------------
  7779. # ibm6000:  file(1) magic for RS/6000 and the RT PC.
  7780. #
  7781. 0    beshort        0x01df        executable (RISC System/6000 V3.1) or obj module
  7782. >12    belong        >0        not stripped
  7783. # Breaks sun4 statically linked execs.
  7784. #0      beshort        0x0103        executable (RT Version 2) or obj module
  7785. #>2    byte        0x50        pure
  7786. #>28    belong        >0        not stripped
  7787. #>6    beshort        >0        - version %ld
  7788. 0    beshort        0x0104        shared library
  7789. 0    beshort        0x0105        ctab data
  7790. 0    beshort        0xfe04        structured file
  7791. 0    string        0xabcdef    AIX message catalog
  7792. 0    belong        0x000001f9    AIX compiled message catalog
  7793. 0    string        \<aiaff>    archive
  7794. 0    string        \<bigaf>    archive (big format)
  7795.  
  7796.  
  7797. #------------------------------------------------------------------------------
  7798. # iff:    file(1) magic for Interchange File Format (see also "audio" & "images")
  7799. #
  7800. # Daniel Quinlan (quinlan@yggdrasil.com) -- IFF was designed by Electronic
  7801. # Arts for file interchange.  It has also been used by Apple, SGI, and
  7802. # especially Commodore-Amiga.
  7803. #
  7804. # IFF files begin with an 8 byte FORM header, followed by a 4 character
  7805. # FORM type, which is followed by the first chunk in the FORM.
  7806.  
  7807. 0    string        FORM        IFF data
  7808. #>4    belong        x        \b, FORM is %d bytes long
  7809. # audio formats
  7810. >8    string        AIFF        \b, AIFF audio
  7811. !:mime    audio/x-aiff
  7812. >8    string        AIFC        \b, AIFF-C compressed audio
  7813. !:mime    audio/x-aiff
  7814. >8    string        8SVX        \b, 8SVX 8-bit sampled sound voice
  7815. !:mime    audio/x-aiff
  7816. >8    string        16SV        \b, 16SV 16-bit sampled sound voice
  7817. >8    string        SAMP        \b, SAMP sampled audio
  7818. >8    string        MAUD        \b, MAUD MacroSystem audio
  7819. >8    string        SMUS        \b, SMUS simple music
  7820. >8    string        CMUS        \b, CMUS complex music
  7821. # image formats
  7822. >8    string        ILBMBMHD    \b, ILBM interleaved image
  7823. >>20    beshort        x        \b, %d x
  7824. >>22    beshort        x        %d
  7825. >8    string        RGBN        \b, RGBN 12-bit RGB image
  7826. >8    string        RGB8        \b, RGB8 24-bit RGB image
  7827. >8    string        DEEP        \b, DEEP TVPaint/XiPaint image
  7828. >8    string        DR2D        \b, DR2D 2-D object
  7829. >8    string        TDDD        \b, TDDD 3-D rendering
  7830. >8    string        LWOB        \b, LWOB 3-D object
  7831. >8    string        LWO2        \b, LWO2 3-D object, v2
  7832. >8    string        LWLO        \b, LWLO 3-D layered object
  7833. >8    string        REAL        \b, REAL Real3D rendering
  7834. >8    string        MC4D        \b, MC4D MaxonCinema4D rendering
  7835. >8    string        ANIM        \b, ANIM animation
  7836. >8    string        YAFA        \b, YAFA animation
  7837. >8    string        SSA\         \b, SSA super smooth animation
  7838. >8    string        ACBM        \b, ACBM continuous image
  7839. >8    string        FAXX        \b, FAXX fax image
  7840. # other formats
  7841. >8    string        FTXT        \b, FTXT formatted text
  7842. >8    string        CTLG        \b, CTLG message catalog
  7843. >8    string        PREF        \b, PREF preferences
  7844. >8    string        DTYP        \b, DTYP datatype description
  7845. >8    string        PTCH        \b, PTCH binary patch
  7846. >8    string        AMFF        \b, AMFF AmigaMetaFile format
  7847. >8    string        WZRD        \b, WZRD StormWIZARD resource
  7848. >8    string        DOC\         \b, DOC desktop publishing document
  7849.  
  7850. # These go at the end of the iff rules
  7851. #
  7852. # I don't see why these might collide with anything else.
  7853. #
  7854. # Interactive Fiction related formats
  7855. #
  7856. >8    string        IFRS        \b, Blorb Interactive Fiction
  7857. >>24    string        Exec        with executable chunk
  7858. >8    string          IFZS        \b, Z-machine or Glulx saved game file (Quetzal)
  7859. #------------------------------------------------------------------------------
  7860. # images:  file(1) magic for image formats (see also "iff", and "c-lang" for
  7861. # XPM bitmaps)
  7862. #
  7863. # originally from jef@helios.ee.lbl.gov (Jef Poskanzer),
  7864. # additions by janl@ifi.uio.no as well as others. Jan also suggested
  7865. # merging several one- and two-line files into here.
  7866. #
  7867. # little magic: PCX (first byte is 0x0a)
  7868.  
  7869. # Targa - matches `povray', `ppmtotga' and `xv' outputs
  7870. # by Philippe De Muyter <phdm@macqel.be>
  7871. # at 2, byte ImgType must be 1, 2, 3, 9, 10 or 11
  7872. # at 1, byte CoMapType must be 1 if ImgType is 1 or 9, 0 otherwise
  7873. # at 3, leshort Index is 0 for povray, ppmtotga and xv outputs
  7874. # `xv' recognizes only a subset of the following (RGB with pixelsize = 24)
  7875. # `tgatoppm' recognizes a superset (Index may be anything)
  7876. 1    belong&0xfff7ffff    0x01010000    Targa image data - Map
  7877. >2    byte&8            8        - RLE
  7878. >12    leshort            >0        %hd x
  7879. >14    leshort            >0        %hd
  7880. 1    belong&0xfff7ffff    0x00020000    Targa image data - RGB
  7881. >2    byte&8            8        - RLE
  7882. >12    leshort            >0        %hd x
  7883. >14    leshort            >0        %hd
  7884. 1    belong&0xfff7ffff    0x00030000    Targa image data - Mono
  7885. >2    byte&8            8        - RLE
  7886. >12    leshort            >0        %hd x
  7887. >14    leshort            >0        %hd
  7888.  
  7889. # PBMPLUS images
  7890. # The next byte following the magic is always whitespace.
  7891. 0    search/1    P1        Netpbm PBM image text
  7892. !:mime    image/x-portable-bitmap
  7893. 0    search/1    P2        Netpbm PGM image text
  7894. !:mime    image/x-portable-greymap
  7895. 0    search/1    P3        Netpbm PPM image text
  7896. !:mime    image/x-portable-pixmap
  7897. 0    string        P4        Netpbm PBM "rawbits" image data
  7898. !:mime    image/x-portable-bitmap
  7899. 0    string        P5        Netpbm PGM "rawbits" image data
  7900. !:mime    image/x-portable-greymap
  7901. 0    string        P6        Netpbm PPM "rawbits" image data
  7902. !:mime    image/x-portable-pixmap
  7903. 0    string        P7        Netpbm PAM image file
  7904. !:mime    image/x-portable-pixmap
  7905.  
  7906. # From: bryanh@giraffe-data.com (Bryan Henderson)
  7907. 0    string        \117\072    Solitaire Image Recorder format
  7908. >4    string        \013        MGI Type 11
  7909. >4    string        \021        MGI Type 17
  7910. 0    string        .MDA        MicroDesign data
  7911. >21    byte        48        version 2
  7912. >21    byte        51        version 3
  7913. 0    string        .MDP        MicroDesign page data
  7914. >21    byte        48        version 2
  7915. >21    byte        51        version 3
  7916.  
  7917. # NIFF (Navy Interchange File Format, a modification of TIFF) images
  7918. # [GRR:  this *must* go before TIFF]
  7919. 0    string        IIN1        NIFF image data
  7920. !:mime    image/x-niff
  7921.  
  7922. # Tag Image File Format, from Daniel Quinlan (quinlan@yggdrasil.com)
  7923. # The second word of TIFF files is the TIFF version number, 42, which has
  7924. # never changed.  The TIFF specification recommends testing for it.
  7925. 0    string        MM\x00\x2a    TIFF image data, big-endian
  7926. !:mime    image/tiff
  7927. 0    string        II\x2a\x00    TIFF image data, little-endian
  7928. !:mime    image/tiff
  7929.  
  7930. # PNG [Portable Network Graphics, or "PNG's Not GIF"] images
  7931. # (Greg Roelofs, newt@uchicago.edu)
  7932. # (Albert Cahalan, acahalan@cs.uml.edu)
  7933. #
  7934. # 137 P N G \r \n ^Z \n [4-byte length] H E A D [HEAD data] [HEAD crc] ...
  7935. #
  7936. 0    string        \x89PNG\x0d\x0a\x1a\x0a        PNG image
  7937. !:mime    image/png
  7938. >16    belong        x        \b, %ld x
  7939. >20    belong        x        %ld,
  7940. >24    byte        x        %d-bit
  7941. >25    byte        0        grayscale,
  7942. >25    byte        2        \b/color RGB,
  7943. >25    byte        3        colormap,
  7944. >25    byte        4        gray+alpha,
  7945. >25    byte        6        \b/color RGBA,
  7946. #>26    byte        0        deflate/32K,
  7947. >28    byte        0        non-interlaced
  7948. >28    byte        1        interlaced
  7949.  
  7950. # possible GIF replacements; none yet released!
  7951. # (Greg Roelofs, newt@uchicago.edu)
  7952. #
  7953. # GRR 950115:  this was mine ("Zip GIF"):
  7954. 0    string        GIF94z        ZIF image (GIF+deflate alpha)
  7955. !:mime    image/x-unknown
  7956. #
  7957. # GRR 950115:  this is Jeremy Wohl's Free Graphics Format (better):
  7958. #                    
  7959. 0    string        FGF95a        FGF image (GIF+deflate beta)
  7960. !:mime    image/x-unknown
  7961. #
  7962. # GRR 950115:  this is Thomas Boutell's Portable Bitmap Format proposal
  7963. # (best; not yet implemented):
  7964. #                    
  7965. 0    string        PBF        PBF image (deflate compression)
  7966. !:mime    image/x-unknown
  7967.  
  7968. # GIF
  7969. 0    string        GIF8        GIF image data
  7970. !:mime    image/gif
  7971. !:apple    8BIMGIFf
  7972. >4    string        7a        \b, version 8%s,
  7973. >4    string        9a        \b, version 8%s,
  7974. >6    leshort        >0        %hd x
  7975. >8    leshort        >0        %hd
  7976. #>10    byte        &0x80        color mapped,
  7977. #>10    byte&0x07    =0x00        2 colors
  7978. #>10    byte&0x07    =0x01        4 colors
  7979. #>10    byte&0x07    =0x02        8 colors
  7980. #>10    byte&0x07    =0x03        16 colors
  7981. #>10    byte&0x07    =0x04        32 colors
  7982. #>10    byte&0x07    =0x05        64 colors
  7983. #>10    byte&0x07    =0x06        128 colors
  7984. #>10    byte&0x07    =0x07        256 colors
  7985.  
  7986. # ITC (CMU WM) raster files.  It is essentially a byte-reversed Sun raster,
  7987. # 1 plane, no encoding.
  7988. 0    string        \361\0\100\273    CMU window manager raster image data
  7989. >4    lelong        >0        %d x
  7990. >8    lelong        >0        %d,
  7991. >12    lelong        >0        %d-bit
  7992.  
  7993. # Magick Image File Format
  7994. 0    string        id=ImageMagick    MIFF image data
  7995.  
  7996. # Artisan
  7997. 0    long        1123028772    Artisan image data
  7998. >4    long        1        \b, rectangular 24-bit
  7999. >4    long        2        \b, rectangular 8-bit with colormap
  8000. >4    long        3        \b, rectangular 32-bit (24-bit with matte)
  8001.  
  8002. # FIG (Facility for Interactive Generation of figures), an object-based format
  8003. 0    search/1    #FIG        FIG image text
  8004. >5    string        x        \b, version %.3s
  8005.  
  8006. # PHIGS
  8007. 0    string        ARF_BEGARF        PHIGS clear text archive
  8008. 0    string        @(#)SunPHIGS        SunPHIGS
  8009. # version number follows, in the form m.n
  8010. >40    string        SunBin            binary
  8011. >32    string        archive            archive
  8012.  
  8013. # GKS (Graphics Kernel System)
  8014. 0    string        GKSM        GKS Metafile
  8015. >24    string        SunGKS        \b, SunGKS
  8016.  
  8017. # CGM image files
  8018. 0    string        BEGMF        clear text Computer Graphics Metafile
  8019.  
  8020. # MGR bitmaps  (Michael Haardt, u31b3hs@pool.informatik.rwth-aachen.de)
  8021. 0    string    yz    MGR bitmap, modern format, 8-bit aligned
  8022. 0    string    zz    MGR bitmap, old format, 1-bit deep, 16-bit aligned
  8023. 0    string    xz    MGR bitmap, old format, 1-bit deep, 32-bit aligned
  8024. 0    string    yx    MGR bitmap, modern format, squeezed
  8025.  
  8026. # Fuzzy Bitmap (FBM) images
  8027. 0    string        %bitmap\0    FBM image data
  8028. >30    long        0x31        \b, mono
  8029. >30    long        0x33        \b, color
  8030.  
  8031. # facsimile data
  8032. 1    string        PC\ Research,\ Inc    group 3 fax data
  8033. >29    byte        0        \b, normal resolution (204x98 DPI)
  8034. >29    byte        1        \b, fine resolution (204x196 DPI)
  8035. # From: Herbert Rosmanith <herp@wildsau.idv.uni.linz.at>
  8036. 0    string        Sfff        structured fax file
  8037.  
  8038.  
  8039. # PC bitmaps (OS/2, Windows BMP files)  (Greg Roelofs, newt@uchicago.edu)
  8040. 0    string        BM
  8041. >14    leshort        12        PC bitmap, OS/2 1.x format
  8042. !:mime    image/x-ms-bmp
  8043. >>18    leshort        x        \b, %d x
  8044. >>20    leshort        x        %d
  8045. >14    leshort        64        PC bitmap, OS/2 2.x format
  8046. !:mime    image/x-ms-bmp
  8047. >>18    leshort        x        \b, %d x
  8048. >>20    leshort        x        %d
  8049. >14    leshort        40        PC bitmap, Windows 3.x format
  8050. !:mime    image/x-ms-bmp
  8051. >>18    lelong        x        \b, %d x
  8052. >>22    lelong        x        %d x
  8053. >>28    leshort        x        %d
  8054. >14    leshort        128        PC bitmap, Windows NT/2000 format
  8055. !:mime    image/x-ms-bmp
  8056. >>18    lelong        x        \b, %d x
  8057. >>22    lelong        x        %d x
  8058. >>28    leshort        x        %d
  8059. # Too simple - MPi
  8060. #0    string        IC        PC icon data
  8061. #0    string        PI        PC pointer image data
  8062. #0    string        CI        PC color icon data
  8063. #0    string        CP        PC color pointer image data
  8064. # Conflicts with other entries [BABYL]
  8065. #0    string        BA        PC bitmap array data
  8066.  
  8067. # XPM icons (Greg Roelofs, newt@uchicago.edu)
  8068. # note possible collision with C/REXX entry in c-lang; currently commented out
  8069. 0    search/1    /*\ XPM\ */    X pixmap image text
  8070.  
  8071. # Utah Raster Toolkit RLE images (janl@ifi.uio.no)
  8072. 0    leshort        0xcc52        RLE image data,
  8073. >6    leshort        x        %d x
  8074. >8    leshort        x        %d
  8075. >2    leshort        >0        \b, lower left corner: %d
  8076. >4    leshort        >0        \b, lower right corner: %d
  8077. >10    byte&0x1    =0x1        \b, clear first
  8078. >10    byte&0x2    =0x2        \b, no background
  8079. >10    byte&0x4    =0x4        \b, alpha channel
  8080. >10    byte&0x8    =0x8        \b, comment
  8081. >11    byte        >0        \b, %d color channels
  8082. >12    byte        >0        \b, %d bits per pixel
  8083. >13    byte        >0        \b, %d color map channels
  8084.  
  8085. # image file format (Robert Potter, potter@cs.rochester.edu)
  8086. 0    string        Imagefile\ version-    iff image data
  8087. # this adds the whole header (inc. version number), informative but longish
  8088. >10    string        >\0        %s
  8089.  
  8090. # Sun raster images, from Daniel Quinlan (quinlan@yggdrasil.com)
  8091. 0    belong        0x59a66a95    Sun raster image data
  8092. >4    belong        >0        \b, %d x
  8093. >8    belong        >0        %d,
  8094. >12    belong        >0        %d-bit,
  8095. #>16    belong        >0        %d bytes long,
  8096. >20    belong        0        old format,
  8097. #>20    belong        1        standard,
  8098. >20    belong        2        compressed,
  8099. >20    belong        3        RGB,
  8100. >20    belong        4        TIFF,
  8101. >20    belong        5        IFF,
  8102. >20    belong        0xffff        reserved for testing,
  8103. >24    belong        0        no colormap
  8104. >24    belong        1        RGB colormap
  8105. >24    belong        2        raw colormap
  8106. #>28    belong        >0        colormap is %d bytes long
  8107.  
  8108. # SGI image file format, from Daniel Quinlan (quinlan@yggdrasil.com)
  8109. #
  8110. # See
  8111. #    http://reality.sgi.com/grafica/sgiimage.html
  8112. #
  8113. 0    beshort        474        SGI image data
  8114. #>2    byte        0        \b, verbatim
  8115. >2    byte        1        \b, RLE
  8116. #>3    byte        1        \b, normal precision
  8117. >3    byte        2        \b, high precision
  8118. >4    beshort        x        \b, %d-D
  8119. >6    beshort        x        \b, %d x
  8120. >8    beshort        x        %d
  8121. >10    beshort        x        \b, %d channel
  8122. >10    beshort        !1        \bs
  8123. >80    string        >0        \b, "%s"
  8124.  
  8125. 0    string        IT01        FIT image data
  8126. >4    belong        x        \b, %d x
  8127. >8    belong        x        %d x
  8128. >12    belong        x        %d
  8129. #
  8130. 0    string        IT02        FIT image data
  8131. >4    belong        x        \b, %d x
  8132. >8    belong        x        %d x
  8133. >12    belong        x        %d
  8134. #
  8135. 2048    string        PCD_IPI        Kodak Photo CD image pack file
  8136. >0xe02    byte&0x03    0x00        , landscape mode
  8137. >0xe02    byte&0x03    0x01        , portrait mode
  8138. >0xe02    byte&0x03    0x02        , landscape mode
  8139. >0xe02    byte&0x03    0x03        , portrait mode
  8140. 0    string        PCD_OPA        Kodak Photo CD overview pack file
  8141.  
  8142. # FITS format.  Jeff Uphoff <juphoff@tarsier.cv.nrao.edu>
  8143. # FITS is the Flexible Image Transport System, the de facto standard for
  8144. # data and image transfer, storage, etc., for the astronomical community.
  8145. # (FITS floating point formats are big-endian.)
  8146. 0    string    SIMPLE\ \ =    FITS image data
  8147. >109    string    8        \b, 8-bit, character or unsigned binary integer
  8148. >108    string    16        \b, 16-bit, two's complement binary integer
  8149. >107    string    \ 32        \b, 32-bit, two's complement binary integer
  8150. >107    string    -32        \b, 32-bit, floating point, single precision
  8151. >107    string    -64        \b, 64-bit, floating point, double precision
  8152.  
  8153. # other images
  8154. 0    string    This\ is\ a\ BitMap\ file    Lisp Machine bit-array-file
  8155.  
  8156. # From SunOS 5.5.1 "/etc/magic" - appeared right before Sun raster image
  8157. # stuff.
  8158. #
  8159. 0    beshort        0x1010        PEX Binary Archive
  8160.  
  8161. # DICOM medical imaging data
  8162. 128    string    DICM            DICOM medical imaging data
  8163. !:mime    application/dicom
  8164.  
  8165. # XWD - X Window Dump file.
  8166. #   As described in /usr/X11R6/include/X11/XWDFile.h
  8167. #   used by the xwd program.
  8168. #   Bradford Castalia, idaeim, 1/01
  8169. #   updated by Adam Buchbinder, 2/09
  8170. # The following assumes version 7 of the format; the first long is the length
  8171. # of the header, which is at least 25 4-byte longs, and the one at offset 8
  8172. # is a constant which is always either 1 or 2. Offset 12 is the pixmap depth,
  8173. # which is a maximum of 32.
  8174. 0    belong    >100
  8175. >8    belong    <3
  8176. >>12    belong    <33
  8177. >>>4    belong    7            XWD X Window Dump image data
  8178. !:mime    image/x-xwindowdump
  8179. >>>>100    string    >\0            \b, "%s"
  8180. >>>>16    belong    x            \b, %dx
  8181. >>>>20    belong    x            \b%dx
  8182. >>>>12    belong    x            \b%d
  8183.  
  8184. # PDS - Planetary Data System
  8185. #   These files use Parameter Value Language in the header section.
  8186. #   Unfortunately, there is no certain magic, but the following
  8187. #   strings have been found to be most likely.
  8188. 0    string    NJPL1I00        PDS (JPL) image data
  8189. 2    string    NJPL1I            PDS (JPL) image data
  8190. 0    string    CCSD3ZF            PDS (CCSD) image data
  8191. 2    string    CCSD3Z            PDS (CCSD) image data
  8192. 0    string    PDS_            PDS image data
  8193. 0    string    LBLSIZE=        PDS (VICAR) image data
  8194.  
  8195. # pM8x: ATARI STAD compressed bitmap format
  8196. #
  8197. # from Oskar Schirmer <schirmer@scara.com> Feb 2, 2001
  8198. # p M 8 5/6 xx yy zz data...
  8199. # Atari ST STAD bitmap is always 640x400, bytewise runlength compressed.
  8200. # bytes either run horizontally (pM85) or vertically (pM86). yy is the
  8201. # most frequent byte, xx and zz are runlength escape codes, where xx is
  8202. # used for runs of yy.
  8203. #
  8204. 0    string    pM85        Atari ST STAD bitmap image data (hor)
  8205. >5    byte    0x00        (white background)
  8206. >5    byte    0xFF        (black background)
  8207. 0    string    pM86        Atari ST STAD bitmap image data (vert)
  8208. >5    byte    0x00        (white background)
  8209. >5    byte    0xFF        (black background)
  8210.  
  8211. # G├╝rkan Seng├╝n <gurkan@linuks.mine.nu>, www.linuks.mine.nu
  8212. # http://www.atarimax.com/jindroush.atari.org/afmtatr.html
  8213. 0    leshort    0x0296        Atari ATR image
  8214.  
  8215. # XXX:
  8216. # This is bad magic 0x5249 == 'RI' conflicts with RIFF and other
  8217. # magic.
  8218. # SGI RICE image file <mpruett@sgi.com>
  8219. #0    beshort    0x5249        RICE image
  8220. #>2    beshort    x        v%d
  8221. #>4    beshort    x        (%d x
  8222. #>6    beshort    x        %d)
  8223. #>8    beshort    0        8 bit
  8224. #>8    beshort    1        10 bit
  8225. #>8    beshort    2        12 bit
  8226. #>8    beshort    3        13 bit
  8227. #>10    beshort    0        4:2:2
  8228. #>10    beshort    1        4:2:2:4
  8229. #>10    beshort    2        4:4:4
  8230. #>10    beshort    3        4:4:4:4
  8231. #>12    beshort    1        RGB
  8232. #>12    beshort    2        CCIR601
  8233. #>12    beshort    3        RP175
  8234. #>12    beshort    4        YUV
  8235.  
  8236. #------------------------------------------------------------------------------
  8237. #
  8238. # Marco Schmidt (marcoschmidt@users.sourceforge.net) -- an image  file format
  8239. # for the EPOC operating system, which is used with PDAs like those from Psion
  8240. #
  8241. # see http://huizen.dds.nl/~frodol/psiconv/html/Index.html for a description
  8242. # of various EPOC file formats
  8243.  
  8244. 0    string \x37\x00\x00\x10\x42\x00\x00\x10\x00\x00\x00\x00\x39\x64\x39\x47 EPOC MBM image file
  8245.  
  8246. # PCX image files
  8247. # From: Dan Fandrich <dan@coneharvesters.com>
  8248. 0    beshort        0x0a00    PCX ver. 2.5 image data
  8249. 0    beshort        0x0a02    PCX ver. 2.8 image data, with palette
  8250. 0    beshort        0x0a03    PCX ver. 2.8 image data, without palette
  8251. 0    beshort        0x0a04    PCX for Windows image data
  8252. 0    beshort        0x0a05    PCX ver. 3.0 image data
  8253. >4    leshort        x      bounding box [%hd,
  8254. >6    leshort        x      %hd] -
  8255. >8    leshort        x      [%hd,
  8256. >10    leshort        x      %hd],
  8257. >65    byte        >1    %d planes each of
  8258. >3    byte        x    %hhd-bit
  8259. >68    byte        0    image,
  8260. >68    byte        1    colour,
  8261. >68    byte        2    grayscale,
  8262. >68    byte        >2    image,
  8263. >68    byte        <0    image,
  8264. >12    leshort        >0    %hd x
  8265. >>14    leshort        x      %hd dpi,
  8266. >2    byte        0    uncompressed
  8267. >2    byte        1    RLE compressed
  8268.  
  8269. # Adobe Photoshop
  8270. 0    string        8BPS Adobe Photoshop Image
  8271. !:mime    image/vnd.adobe.photoshop
  8272.  
  8273. # XV thumbnail indicator (ThMO)
  8274. 0    string        P7\ 332        XV thumbnail image data
  8275.  
  8276. # NITF is defined by United States MIL-STD-2500A
  8277. 0    string    NITF    National Imagery Transmission Format
  8278. >25    string    >\0    dated %.14s
  8279.  
  8280. # GEM Image: Version 1, Headerlen 8 (Wolfram Kleff)
  8281. 0    belong        0x00010008    GEM Image data
  8282. >12    beshort        x        %d x
  8283. >14    beshort        x        %d,
  8284. >4    beshort        x        %d planes,
  8285. >8    beshort        x        %d x
  8286. >10    beshort        x        %d pixelsize
  8287.  
  8288. # GEM Metafile (Wolfram Kleff)
  8289. 0    lelong        0x0018FFFF    GEM Metafile data
  8290. >4    leshort        x        version %d
  8291.  
  8292. #
  8293. # SMJPEG. A custom Motion JPEG format used by Loki Entertainment
  8294. # Software Torbjorn Andersson <d91tan@Update.UU.SE>.
  8295. #
  8296. 0    string    \0\nSMJPEG    SMJPEG
  8297. >8    belong    x        %d.x data
  8298. # According to the specification you could find any number of _TXT
  8299. # headers here, but I can't think of any way of handling that. None of
  8300. # the SMJPEG files I tried it on used this feature. Even if such a
  8301. # file is encountered the output should still be reasonable.
  8302. >16    string    _SND        \b,
  8303. >>24    beshort    >0        %d Hz
  8304. >>26    byte    8        8-bit
  8305. >>26    byte    16        16-bit
  8306. >>28    string    NONE        uncompressed
  8307. # >>28    string    APCM        ADPCM compressed
  8308. >>27    byte    1        mono
  8309. >>28    byte    2        stereo
  8310. # Help! Isn't there any way to avoid writing this part twice?
  8311. >>32    string    _VID        \b,
  8312. # >>>48    string    JFIF        JPEG
  8313. >>>40    belong    >0        %d frames
  8314. >>>44    beshort    >0        (%d x
  8315. >>>46    beshort    >0        %d)
  8316. >16    string    _VID        \b,
  8317. # >>32    string    JFIF        JPEG
  8318. >>24    belong    >0        %d frames
  8319. >>28    beshort    >0        (%d x
  8320. >>30    beshort    >0        %d)
  8321.  
  8322. 0    string    Paint\ Shop\ Pro\ Image\ File    Paint Shop Pro Image File
  8323.  
  8324. # "thumbnail file" (icon)
  8325. # descended from "xv", but in use by other applications as well (Wolfram Kleff)
  8326. 0       string          P7\ 332         XV "thumbnail file" (icon) data
  8327.  
  8328. # taken from fkiss: (<yav@mte.biglobe.ne.jp> ?)
  8329. 0       string          KiSS            KISS/GS
  8330. >4      byte            16              color
  8331. >>5     byte            x               %d bit
  8332. >>8     leshort         x               %d colors
  8333. >>10    leshort         x               %d groups
  8334. >4      byte            32              cell
  8335. >>5     byte            x               %d bit
  8336. >>8     leshort         x               %d x
  8337. >>10    leshort         x               %d
  8338. >>12    leshort         x               +%d
  8339. >>14    leshort         x               +%d
  8340.  
  8341. # Webshots (www.webshots.com), by John Harrison
  8342. 0       string          C\253\221g\230\0\0\0 Webshots Desktop .wbz file
  8343.  
  8344. # Hercules DASD image files
  8345. # From Jan Jaeger <jj@septa.nl>
  8346. 0       string  CKD_P370        Hercules CKD DASD image file
  8347. >8      long    x               \b, %d heads per cylinder
  8348. >12     long    x               \b, track size %d bytes
  8349. >16     byte    x               \b, device type 33%2.2X
  8350.  
  8351. 0       string  CKD_C370        Hercules compressed CKD DASD image file
  8352. >8      long    x               \b, %d heads per cylinder
  8353. >12     long    x               \b, track size %d bytes
  8354. >16     byte    x               \b, device type 33%2.2X
  8355.  
  8356. 0       string  CKD_S370        Hercules CKD DASD shadow file
  8357. >8      long    x               \b, %d heads per cylinder
  8358. >12     long    x               \b, track size %d bytes
  8359. >16     byte    x               \b, device type 33%2.2X
  8360.  
  8361. # Squeak images and programs - etoffi@softhome.net
  8362. 0    string        \146\031\0\0    Squeak image data
  8363. 0    search/1    'From\040Squeak    Squeak program text
  8364.  
  8365. # partimage: file(1) magic for PartImage files (experimental, incomplete)
  8366. # Author: Hans-Joachim Baader <hjb@pro-linux.de>
  8367. 0        string    PaRtImAgE-VoLuMe    PartImage
  8368. >0x0020        string    0.6.1        file version %s
  8369. >>0x0060    lelong    >-1        volume %ld
  8370. #>>0x0064 8 byte identifier
  8371. #>>0x007c reserved
  8372. >>0x0200    string    >\0        type %s
  8373. >>0x1400    string    >\0        device %s,
  8374. >>0x1600    string    >\0        original filename %s,
  8375. # Some fields omitted
  8376. >>0x2744    lelong    0        not compressed
  8377. >>0x2744    lelong    1        gzip compressed
  8378. >>0x2744    lelong    2        bzip2 compressed
  8379. >>0x2744    lelong    >2        compressed with unknown algorithm
  8380. >0x0020        string    >0.6.1        file version %s
  8381. >0x0020        string    <0.6.1        file version %s
  8382.  
  8383. # DCX is multi-page PCX, using a simple header of up to 1024
  8384. # offsets for the respective PCX components.
  8385. # From: Joerg Wunsch <joerg_wunsch@uriah.heep.sax.de>
  8386. 0    lelong    987654321    DCX multi-page PCX image data
  8387.  
  8388. # Simon Walton <simonw@matteworld.com>
  8389. # Kodak Cineon format for scanned negatives
  8390. # http://www.kodak.com/US/en/motion/support/dlad/
  8391. 0    lelong  0xd75f2a80    Cineon image data
  8392. >200    belong  >0        \b, %ld x
  8393. >204    belong  >0        %ld
  8394.  
  8395.  
  8396. # Bio-Rad .PIC is an image format used by microscope control systems
  8397. # and related image processing software used by biologists.
  8398. # From: Vebjorn Ljosa <vebjorn@ljosa.com>
  8399. 54    leshort 12345        Bio-Rad .PIC Image File
  8400. >0    leshort >0        %hd x
  8401. >2    leshort >0        %hd,
  8402. >4    leshort =1        1 image in file
  8403. >4    leshort >1        %hd images in file
  8404.  
  8405. # From Jan "Yenya" Kasprzak <kas@fi.muni.cz>
  8406. # The description of *.mrw format can be found at
  8407. # http://www.dalibor.cz/minolta/raw_file_format.htm
  8408. 0    string    \000MRM            Minolta Dimage camera raw image data
  8409.  
  8410. # Summary: DjVu image / document
  8411. # Extension: .djvu
  8412. # Reference: http://djvu.org/docs/DjVu3Spec.djvu
  8413. # Submitted by: Stephane Loeuillet <stephane.loeuillet@tiscali.fr>
  8414. # Modified by (1): Abel Cheung <abelcheung@gmail.com>
  8415. 0    string    AT&TFORM
  8416. !:mime    image/vnd.djvu
  8417. >12    string    DJVM        DjVu multiple page document
  8418. >12    string    DJVU        DjVu image or single page document
  8419. >12    string    DJVI        DjVu shared document
  8420. >12    string    THUM        DjVu page thumbnails
  8421.  
  8422.  
  8423. # From Marc Espie
  8424. 0    lelong    20000630        OpenEXR image data
  8425.  
  8426. # From: Tom Hilinski <tom.hilinski@comcast.net>
  8427. # http://www.unidata.ucar.edu/packages/netcdf/
  8428. 0    string    CDF\001            NetCDF Data Format data
  8429.  
  8430. #-----------------------------------------------------------------------
  8431. # Hierarchical Data Format, used to facilitate scientific data exchange
  8432. # specifications at http://hdf.ncsa.uiuc.edu/
  8433. 0    belong    0x0e031301    Hierarchical Data Format (version 4) data
  8434. !:mime    application/x-hdf
  8435. 0    string    \211HDF\r\n\032    Hierarchical Data Format (version 5) data
  8436. !:mime    application/x-hdf
  8437.  
  8438. # From: Tobias Burnus <burnus@net-b.de>
  8439. # Xara (for a while: Corel Xara) is a graphic package, see
  8440. # http://www.xara.com/ for Windows and as GPL application for Linux
  8441. 0    string    XARA\243\243    Xara graphics file
  8442.  
  8443. # http://www.cartesianinc.com/Tech/
  8444. 0    string    CPC\262        Cartesian Perceptual Compression image
  8445. !:mime    image/x-cpi
  8446.  
  8447. # From Albert Cahalan <acahalan@gmail.com>
  8448. # puredigital used it for the CVS disposable camcorder
  8449. #8       lelong  4       ZBM bitmap image data
  8450. #>4      leshort x       %u x
  8451. #>6      leshort x       %u
  8452.  
  8453. # From Albert Cahalan <acahalan@gmail.com>
  8454. # uncompressed 5:6:5 HighColor image for OLPC XO firmware icons
  8455. 0       string C565     OLPC firmware icon image data
  8456. >4      leshort x       %u x
  8457. >6      leshort x       %u
  8458.  
  8459. # Applied Images - Image files from Cytovision
  8460. # Gustavo Junior Alves <gjalves@gjalves.com.br>
  8461. 0    string    \xce\xda\xde\xfa    Cytovision Metaphases file
  8462. 0    string    \xed\xad\xef\xac    Cytovision Karyotype file
  8463. 0    string    \x0b\x00\x03\x00    Cytovision FISH Probe file
  8464. 0    string    \xed\xfe\xda\xbe    Cytovision FLEX file
  8465. 0    string    \xed\xab\xed\xfe    Cytovision FLEX file
  8466. 0    string    \xad\xfd\xea\xad    Cytovision RATS file
  8467.  
  8468. # Wavelet Scalar Quantization format used in gray-scale fingerprint images
  8469. # From Tano M Fotang <mfotang@quanteq.com>
  8470. 0    string    \xff\xa0\xff\xa8\x00    Wavelet Scalar Quantization image data
  8471.  
  8472. # JPEG 2000 Code Stream Bitmap
  8473. # From Petr Splichal <psplicha@redhat.com>
  8474. 0    string    \xFF\x4F\xFF\x51\x00    JPEG-2000 Code Stream Bitmap data
  8475.  
  8476. # Type:    Ulead Photo Explorer5 (.pe5)
  8477. # URL:    http://www.jisyo.com/cgibin/view.cgi?EXT=pe5 (Japanese)
  8478. # From:    Simon Horman <horms@debian.org>
  8479. 0    string    IIO2H            Ulead Photo Explorer5
  8480.  
  8481. # Type:    X11 cursor
  8482. # URL:    http://webcvs.freedesktop.org/mime/shared-mime-info/freedesktop.org.xml.in?view=markup
  8483. # From:    Mathias Brodala <info@noctus.net>
  8484. 0    string    Xcur            X11 cursor
  8485.  
  8486. #------------------------------------------------------------------------------
  8487. # inform:  file(1) magic for Inform interactive fiction language
  8488.  
  8489. # URL:  http://www.inform-fiction.org/
  8490. # From: Reuben Thomas <rrt@sc3d.org>
  8491.  
  8492. 0    search/cB/100    constant\ story        Inform source text
  8493.  
  8494. #------------------------------------------------------------------------------
  8495. # intel:  file(1) magic for x86 Unix
  8496. #
  8497. # Various flavors of x86 UNIX executable/object (other than Xenix, which
  8498. # is in "microsoft").  DOS is in "msdos"; the ambitious soul can do
  8499. # Windows as well.
  8500. #
  8501. # Windows NT belongs elsewhere, as you need x86 and MIPS and Alpha and
  8502. # whatever comes next (HP-PA Hummingbird?).  OS/2 may also go elsewhere
  8503. # as well, if, as, and when IBM makes it portable.
  8504. #
  8505. # The `versions' should be un-commented if they work for you.
  8506. # (Was the problem just one of endianness?)
  8507. #
  8508. 0    leshort        0502        basic-16 executable
  8509. >12    lelong        >0        not stripped
  8510. #>22    leshort        >0        - version %ld
  8511. 0    leshort        0503        basic-16 executable (TV)
  8512. >12    lelong        >0        not stripped
  8513. #>22    leshort        >0        - version %ld
  8514. 0    leshort        0510        x86 executable
  8515. >12    lelong        >0        not stripped
  8516. 0    leshort        0511        x86 executable (TV)
  8517. >12    lelong        >0        not stripped
  8518. 0    leshort        =0512        iAPX 286 executable small model (COFF)
  8519. >12    lelong        >0        not stripped
  8520. #>22    leshort        >0        - version %ld
  8521. 0    leshort        =0522        iAPX 286 executable large model (COFF)
  8522. >12    lelong        >0        not stripped
  8523. #>22    leshort        >0        - version %ld
  8524. # SGI labeled the next entry as "iAPX 386 executable" --Dan Quinlan
  8525. 0    leshort        =0514        80386 COFF executable
  8526. >12    lelong        >0        not stripped
  8527. >22    leshort        >0        - version %ld
  8528.  
  8529. # rom: file(1) magic for BIOS ROM Extensions found in intel machines
  8530. #      mapped into memory between 0xC0000 and 0xFFFFF
  8531. # From G├╝rkan Seng├╝n <gurkan@linuks.mine.nu>, www.linuks.mine.nu
  8532. 0        beshort         0x55AA       BIOS (ia32) ROM Ext.
  8533. >5       string          USB          USB
  8534. >7       string          LDR          UNDI image
  8535. >30      string          IBM          IBM comp. Video
  8536. >26      string          Adaptec      Adaptec
  8537. >28      string          Adaptec      Adaptec
  8538. >42      string          PROMISE      Promise
  8539. >2       byte            x            (%d*512)
  8540.  
  8541. #------------------------------------------------------------------------------
  8542. # interleaf:  file(1) magic for InterLeaf TPS:
  8543. #
  8544. 0    string        =\210OPS    Interleaf saved data
  8545. 0    string        =<!OPS        Interleaf document text
  8546. >5    string        ,\ Version\ =    \b, version
  8547. >>17    string        >\0        %.3s
  8548.  
  8549. #------------------------------------------------------------------------------
  8550. # island:  file(1) magic for IslandWite/IslandDraw, from SunOS 5.5.1
  8551. # "/etc/magic":
  8552. # From: guy@netapp.com (Guy Harris)
  8553. #
  8554. 4    string        pgscriptver    IslandWrite document
  8555. 13    string        DrawFile    IslandDraw document
  8556.  
  8557.  
  8558. #------------------------------------------------------------------------------
  8559. # ispell:  file(1) magic for ispell
  8560. #
  8561. # Ispell 3.0 has a magic of 0x9601 and ispell 3.1 has 0x9602.  This magic
  8562. # will match 0x9600 through 0x9603 in *both* little endian and big endian.
  8563. # (No other current magic entries collide.)
  8564. #
  8565. # Updated by Daniel Quinlan (quinlan@yggdrasil.com)
  8566. #
  8567. 0    leshort&0xFFFC    0x9600        little endian ispell
  8568. >0    byte        0        hash file (?),
  8569. >0    byte        1        3.0 hash file,
  8570. >0    byte        2        3.1 hash file,
  8571. >0    byte        3        hash file (?),
  8572. >2    leshort        0x00        8-bit, no capitalization, 26 flags
  8573. >2    leshort        0x01        7-bit, no capitalization, 26 flags
  8574. >2    leshort        0x02        8-bit, capitalization, 26 flags
  8575. >2    leshort        0x03        7-bit, capitalization, 26 flags
  8576. >2    leshort        0x04        8-bit, no capitalization, 52 flags
  8577. >2    leshort        0x05        7-bit, no capitalization, 52 flags
  8578. >2    leshort        0x06        8-bit, capitalization, 52 flags
  8579. >2    leshort        0x07        7-bit, capitalization, 52 flags
  8580. >2    leshort        0x08        8-bit, no capitalization, 128 flags
  8581. >2    leshort        0x09        7-bit, no capitalization, 128 flags
  8582. >2    leshort        0x0A        8-bit, capitalization, 128 flags
  8583. >2    leshort        0x0B        7-bit, capitalization, 128 flags
  8584. >2    leshort        0x0C        8-bit, no capitalization, 256 flags
  8585. >2    leshort        0x0D        7-bit, no capitalization, 256 flags
  8586. >2    leshort        0x0E        8-bit, capitalization, 256 flags
  8587. >2    leshort        0x0F        7-bit, capitalization, 256 flags
  8588. >4    leshort        >0        and %d string characters
  8589. 0    beshort&0xFFFC    0x9600        big endian ispell
  8590. >1    byte        0        hash file (?),
  8591. >1    byte        1        3.0 hash file,
  8592. >1    byte        2        3.1 hash file,
  8593. >1    byte        3        hash file (?),
  8594. >2    beshort        0x00        8-bit, no capitalization, 26 flags
  8595. >2    beshort        0x01        7-bit, no capitalization, 26 flags
  8596. >2    beshort        0x02        8-bit, capitalization, 26 flags
  8597. >2    beshort        0x03        7-bit, capitalization, 26 flags
  8598. >2    beshort        0x04        8-bit, no capitalization, 52 flags
  8599. >2    beshort        0x05        7-bit, no capitalization, 52 flags
  8600. >2    beshort        0x06        8-bit, capitalization, 52 flags
  8601. >2    beshort        0x07        7-bit, capitalization, 52 flags
  8602. >2    beshort        0x08        8-bit, no capitalization, 128 flags
  8603. >2    beshort        0x09        7-bit, no capitalization, 128 flags
  8604. >2    beshort        0x0A        8-bit, capitalization, 128 flags
  8605. >2    beshort        0x0B        7-bit, capitalization, 128 flags
  8606. >2    beshort        0x0C        8-bit, no capitalization, 256 flags
  8607. >2    beshort        0x0D        7-bit, no capitalization, 256 flags
  8608. >2    beshort        0x0E        8-bit, capitalization, 256 flags
  8609. >2    beshort        0x0F        7-bit, capitalization, 256 flags
  8610. >4    beshort        >0        and %d string characters
  8611. # ispell 4.0 hash files  kromJx <kromJx@crosswinds.net>
  8612. # Ispell 4.0
  8613. 0       string          ISPL            ispell
  8614. >4      long            x               hash file version %d,
  8615. >8      long            x               lexletters %d,
  8616. >12     long            x               lexsize %d,
  8617. >16     long            x               hashsize %d,
  8618. >20     long            x               stblsize %d
  8619. #------------------------------------------------------------
  8620. # Java ByteCode and Mach-O binaries (e.g., Mac OS X) use the
  8621. # same magic number, 0xcafebabe, so they are both handled
  8622. # in the entry called "cafebabe".
  8623. #------------------------------------------------------------
  8624. # Java serialization
  8625. # From Martin Pool (m.pool@pharos.com.au)
  8626. 0    beshort        0xaced        Java serialization data
  8627. >2    beshort        >0x0004        \b, version %d
  8628.  
  8629. 0    belong        0xfeedfeed    Java KeyStore
  8630. !:mime    application/x-java-keystore
  8631. 0    belong        0xcececece    Java JCE KeyStore
  8632. !:mime    application/x-java-jce-keystore
  8633.  
  8634. # Dalvik .dex format. http://retrodev.com/android/dexformat.html
  8635. # From <mkf@google.com> "Mike Fleming"
  8636. 0    string    dex\n
  8637. >0    regex    dex\n[0-9][0-9][0-9]\0    Dalvik dex file
  8638. >4    string    >000            version %s
  8639. 0    string    dey\n
  8640. >0    regex    dey\n[0-9][0-9][0-9]\0    Dalvik dex file (optimized for host)
  8641. >4    string    >000            version %s
  8642.  
  8643.  
  8644. #------------------------------------------------------------------------------
  8645. # JPEG images
  8646. # SunOS 5.5.1 had
  8647. #
  8648. #    0    string        \377\330\377\340    JPEG file
  8649. #    0    string        \377\330\377\356    JPG file
  8650. #
  8651. # both of which turn into "JPEG image data" here.
  8652. #
  8653. 0    beshort        0xffd8        JPEG image data
  8654. !:mime    image/jpeg
  8655. !:apple    8BIMJPEG
  8656. !:strength +1
  8657. >6    string        JFIF        \b, JFIF standard
  8658. # The following added by Erik Rossen <rossen@freesurf.ch> 1999-09-06
  8659. # in a vain attempt to add image size reporting for JFIF.  Note that these
  8660. # tests are not fool-proof since some perfectly valid JPEGs are currently
  8661. # impossible to specify in magic(4) format.
  8662. # First, a little JFIF version info:
  8663. >>11    byte        x        \b %d.
  8664. >>12    byte        x        \b%02d
  8665. # Next, the resolution or aspect ratio of the image:
  8666. #>>13    byte        0        \b, aspect ratio
  8667. #>>13    byte        1        \b, resolution (DPI)
  8668. #>>13    byte        2        \b, resolution (DPCM)
  8669. #>>4    beshort        x        \b, segment length %d
  8670. # Next, show thumbnail info, if it exists:
  8671. >>18    byte        !0        \b, thumbnail %dx
  8672. >>>19    byte        x        \b%d
  8673.  
  8674. # EXIF moved down here to avoid reporting a bogus version number,
  8675. # and EXIF version number printing added.
  8676. #   - Patrik R=E5dman <patrik+file-magic@iki.fi>
  8677. >6    string        Exif        \b, EXIF standard
  8678. # Look for EXIF IFD offset in IFD 0, and then look for EXIF version tag in EXIF IFD.
  8679. # All possible combinations of entries have to be enumerated, since no looping
  8680. # is possible. And both endians are possible...
  8681. # The combinations included below are from real-world JPEGs.
  8682. # Little-endian
  8683. >>12    string        II        
  8684. # IFD 0 Entry #5:
  8685. >>>70    leshort        0x8769          
  8686. # EXIF IFD Entry #1:
  8687. >>>>(78.l+14)    leshort    0x9000        
  8688. >>>>>(78.l+23)    byte    x        %c
  8689. >>>>>(78.l+24)    byte    x        \b.%c
  8690. >>>>>(78.l+25)    byte    !0x30        \b%c
  8691. # IFD 0 Entry #9:
  8692. >>>118    leshort        0x8769          
  8693. # EXIF IFD Entry #3:
  8694. >>>>(126.l+38)    leshort    0x9000        
  8695. >>>>>(126.l+47)    byte    x        %c
  8696. >>>>>(126.l+48)    byte    x        \b.%c
  8697. >>>>>(126.l+49)    byte    !0x30        \b%c
  8698. # IFD 0 Entry #10
  8699. >>>130    leshort        0x8769          
  8700. # EXIF IFD Entry #3:
  8701. >>>>(138.l+38)    leshort    0x9000        
  8702. >>>>>(138.l+47)    byte    x        %c
  8703. >>>>>(138.l+48)    byte    x        \b.%c
  8704. >>>>>(138.l+49)    byte    !0x30        \b%c
  8705. # EXIF IFD Entry #4:
  8706. >>>>(138.l+50)    leshort    0x9000        
  8707. >>>>>(138.l+59)    byte    x        %c
  8708. >>>>>(138.l+60)    byte    x        \b.%c
  8709. >>>>>(138.l+61)    byte    !0x30        \b%c
  8710. # EXIF IFD Entry #5:
  8711. >>>>(138.l+62)    leshort    0x9000        
  8712. >>>>>(138.l+71)    byte    x        %c
  8713. >>>>>(138.l+72)    byte    x        \b.%c
  8714. >>>>>(138.l+73)    byte    !0x30        \b%c
  8715. # IFD 0 Entry #11
  8716. >>>142    leshort        0x8769          
  8717. # EXIF IFD Entry #3:
  8718. >>>>(150.l+38)    leshort    0x9000        
  8719. >>>>>(150.l+47)    byte    x        %c
  8720. >>>>>(150.l+48)    byte    x        \b.%c
  8721. >>>>>(150.l+49)    byte    !0x30        \b%c
  8722. # EXIF IFD Entry #4:
  8723. >>>>(150.l+50)    leshort    0x9000        
  8724. >>>>>(150.l+59)    byte    x        %c
  8725. >>>>>(150.l+60)    byte    x        \b.%c
  8726. >>>>>(150.l+61)    byte    !0x30        \b%c
  8727. # EXIF IFD Entry #5:
  8728. >>>>(150.l+62)    leshort    0x9000        
  8729. >>>>>(150.l+71)    byte    x        %c
  8730. >>>>>(150.l+72)    byte    x        \b.%c
  8731. >>>>>(150.l+73)    byte    !0x30        \b%c
  8732. # Big-endian
  8733. >>12    string        MM        
  8734. # IFD 0 Entry #9:
  8735. >>>118    beshort        0x8769          
  8736. # EXIF IFD Entry #1:
  8737. >>>>(126.L+14)    beshort    0x9000        
  8738. >>>>>(126.L+23)    byte    x        %c
  8739. >>>>>(126.L+24)    byte    x        \b.%c
  8740. >>>>>(126.L+25)    byte    !0x30        \b%c
  8741. # EXIF IFD Entry #3:
  8742. >>>>(126.L+38)    beshort    0x9000        
  8743. >>>>>(126.L+47)    byte    x        %c
  8744. >>>>>(126.L+48)    byte    x        \b.%c
  8745. >>>>>(126.L+49)    byte    !0x30        \b%c
  8746. # IFD 0 Entry #10
  8747. >>>130    beshort        0x8769          
  8748. # EXIF IFD Entry #3:
  8749. >>>>(138.L+38)    beshort    0x9000        
  8750. >>>>>(138.L+47)    byte    x        %c
  8751. >>>>>(138.L+48)    byte    x        \b.%c
  8752. >>>>>(138.L+49)    byte    !0x30        \b%c
  8753. # EXIF IFD Entry #5:
  8754. >>>>(138.L+62)    beshort    0x9000        
  8755. >>>>>(138.L+71)    byte    x        %c
  8756. >>>>>(138.L+72)    byte    x        \b.%c
  8757. >>>>>(138.L+73)    byte    !0x30        \b%c
  8758. # IFD 0 Entry #11
  8759. >>>142    beshort        0x8769          
  8760. # EXIF IFD Entry #4:
  8761. >>>>(150.L+50)    beshort    0x9000        
  8762. >>>>>(150.L+59)    byte    x        %c
  8763. >>>>>(150.L+60)    byte    x        \b.%c
  8764. >>>>>(150.L+61)    byte    !0x30        \b%c
  8765. # Here things get sticky.  We can do ONE MORE marker segment with
  8766. # indirect addressing, and that's all.  It would be great if we could
  8767. # do pointer arithemetic like in an assembler language.  Christos?
  8768. # And if there was some sort of looping construct to do searches, plus a few
  8769. # named accumulators, it would be even more effective...
  8770. # At least we can show a comment if no other segments got inserted before:
  8771. >(4.S+5)    byte        0xFE
  8772. >>(4.S+8)    string        >\0        \b, comment: "%s"
  8773. # FIXME: When we can do non-byte counted strings, we can use that to get
  8774. # the string's count, and fix Debian bug #283760
  8775. #>(4.S+5)    byte        0xFE        \b, comment
  8776. #>>(4.S+6)    beshort        x        \b length=%d
  8777. #>>(4.S+8)    string        >\0        \b, "%s"
  8778. # Or, we can show the encoding type (I've included only the three most common)
  8779. # and image dimensions if we are lucky and the SOFn (image segment) is here:
  8780. >(4.S+5)    byte        0xC0        \b, baseline
  8781. >>(4.S+6)    byte        x        \b, precision %d
  8782. >>(4.S+7)    beshort        x        \b, %dx
  8783. >>(4.S+9)    beshort        x        \b%d
  8784. >(4.S+5)    byte        0xC1        \b, extended sequential
  8785. >>(4.S+6)    byte        x        \b, precision %d
  8786. >>(4.S+7)    beshort        x        \b, %dx
  8787. >>(4.S+9)    beshort        x        \b%d
  8788. >(4.S+5)    byte        0xC2        \b, progressive
  8789. >>(4.S+6)    byte        x        \b, precision %d
  8790. >>(4.S+7)    beshort        x        \b, %dx
  8791. >>(4.S+9)    beshort        x        \b%d
  8792. # I've commented-out quantisation table reporting.  I doubt anyone cares yet.
  8793. #>(4.S+5)    byte        0xDB        \b, quantisation table
  8794. #>>(4.S+6)    beshort        x        \b length=%d
  8795. #>14    beshort        x        \b, %d x
  8796. #>16    beshort        x        \b %d
  8797.  
  8798. # HSI is Handmade Software's proprietary JPEG encoding scheme
  8799. 0    string        hsi1        JPEG image data, HSI proprietary
  8800.  
  8801. # From: David Santinoli <david@santinoli.com>
  8802. 0    string        \x00\x00\x00\x0C\x6A\x50\x20\x20\x0D\x0A\x87\x0A    JPEG 2000 image data
  8803.  
  8804. # Type: JPEG 2000 codesream
  8805. # From: Mathieu Malaterre <mathieu.malaterre@gmail.com>
  8806. 0    belong        0xff4fff51                        JPEG 2000 codestream
  8807. 45    beshort        0xff52
  8808.  
  8809. #------------------------------------------------------------------------------
  8810. # karma:  file(1) magic for Karma data files
  8811. #
  8812. # From <rgooch@atnf.csiro.au>
  8813.  
  8814. 0    string        KarmaRHD Version    Karma Data Structure Version
  8815. >16    belong        x        %lu
  8816.  
  8817. #------------------------------------------------------------------------------
  8818. # kde:  file(1) magic for KDE
  8819.  
  8820. 0        string    [KDE\ Desktop\ Entry]    KDE desktop entry
  8821. !:mime    application/x-kdelnk
  8822. 0        string    #\ KDE\ Config\ File    KDE config file
  8823. !:mime    application/x-kdelnk
  8824. 0        string    #\ xmcd    xmcd database file for kscd
  8825. !:mime    text/x-xmcd
  8826. #------------------------------------------------------------------------------
  8827. # Type: Google KML, formerly Keyhole Markup Language
  8828. # Future development of this format has been handed
  8829. # over to the Open Geospatial Consortium.
  8830. # http://www.opengeospatial.org/standards/kml/
  8831. # From: Asbjoern Sloth Toennesen <asbjorn@lila.io>
  8832. 0 string    \<?xml
  8833. >20  search/400 \ xmlns= 
  8834. >>&0 regex ['"]http://earth.google.com/kml Google KML document
  8835. !:mime application/vnd.google-earth.kml+xml
  8836. >>>&1 string 2.0' \b, version 2.0
  8837. >>>&1 string 2.1' \b, version 2.1
  8838. >>>&1 string 2.2' \b, version 2.2
  8839.  
  8840. #------------------------------------------------------------------------------
  8841. # Type: OpenGIS KML, formerly Keyhole Markup Language
  8842. # This standard is maintained by the
  8843. # Open Geospatial Consortium.
  8844. # http://www.opengeospatial.org/standards/kml/
  8845. # From: Asbjoern Sloth Toennesen <asbjorn@lila.io>
  8846. >>&0 regex ['"]http://www.opengis.net/kml OpenGIS KML document
  8847. !:mime application/vnd.google-earth.kml+xml
  8848. >>>&1 string 2.2 \b, version 2.2
  8849.  
  8850. #------------------------------------------------------------------------------
  8851. # Type: Google KML Archive (ZIP based) 
  8852. # http://code.google.com/apis/kml/documentation/kml_tut.html
  8853. # From: Asbjoern Sloth Toennesen <asbjorn@lila.io>
  8854. 0 string    PK\003\004
  8855. >4  byte    0x14
  8856. >>30  string doc.kml Compressed Google KML Document, including resources.
  8857. !:mime application/vnd.google-earth.kmz
  8858. #------------------------------------------------------------------------------
  8859. # DEC SRC Virtual Paper: Lectern files
  8860. # Karl M. Hegbloom <karlheg@inetarena.com>
  8861. 0    string    lect    DEC SRC Virtual Paper Lectern file
  8862. #------------------------------------------------------------------------------
  8863. # lex:  file(1) magic for lex
  8864. #
  8865. #    derived empirically, your offsets may vary!
  8866. 0    search/100    yyprevious    C program text (from lex)
  8867. >3    search/1    >\0         for %s
  8868. # C program text from GNU flex, from Daniel Quinlan <quinlan@yggdrasil.com>
  8869. 0    search/100    generated\ by\ flex    C program text (from flex)
  8870. # lex description file, from Daniel Quinlan <quinlan@yggdrasil.com>
  8871. 0    search/1    %{        lex description text
  8872.  
  8873. #------------------------------------------------------------------------------
  8874. # lif:  file(1) magic for lif
  8875. #
  8876. # (Daniel Quinlan <quinlan@yggdrasil.com>)
  8877. #
  8878. 0    beshort        0x8000        lif file
  8879. #------------------------------------------------------------------------------
  8880. # linux:  file(1) magic for Linux files
  8881. #
  8882. # Values for Linux/i386 binaries, from Daniel Quinlan <quinlan@yggdrasil.com>
  8883. # The following basic Linux magic is useful for reference, but using
  8884. # "long" magic is a better practice in order to avoid collisions.
  8885. #
  8886. # 2    leshort        100        Linux/i386
  8887. # >0    leshort        0407        impure executable (OMAGIC)
  8888. # >0    leshort        0410        pure executable (NMAGIC)
  8889. # >0    leshort        0413        demand-paged executable (ZMAGIC)
  8890. # >0    leshort        0314        demand-paged executable (QMAGIC)
  8891. #
  8892. 0    lelong        0x00640107    Linux/i386 impure executable (OMAGIC)
  8893. >16    lelong        0        \b, stripped
  8894. 0    lelong        0x00640108    Linux/i386 pure executable (NMAGIC)
  8895. >16    lelong        0        \b, stripped
  8896. 0    lelong        0x0064010b    Linux/i386 demand-paged executable (ZMAGIC)
  8897. >16    lelong        0        \b, stripped
  8898. 0    lelong        0x006400cc    Linux/i386 demand-paged executable (QMAGIC)
  8899. >16    lelong        0        \b, stripped
  8900. #
  8901. 0    string        \007\001\000    Linux/i386 object file
  8902. >20    lelong        >0x1020        \b, DLL library
  8903. # Linux-8086 stuff:
  8904. 0    string        \01\03\020\04    Linux-8086 impure executable
  8905. >28    long        !0        not stripped
  8906. 0    string        \01\03\040\04    Linux-8086 executable
  8907. >28    long        !0        not stripped
  8908. #
  8909. 0    string        \243\206\001\0    Linux-8086 object file
  8910. #
  8911. 0    string        \01\03\020\20    Minix-386 impure executable
  8912. >28    long        !0        not stripped
  8913. 0    string        \01\03\040\20    Minix-386 executable
  8914. >28    long        !0        not stripped
  8915. # core dump file, from Bill Reynolds <bill@goshawk.lanl.gov>
  8916. 216    lelong        0421        Linux/i386 core file
  8917. >220    string        >\0        of '%s'
  8918. >200    lelong        >0        (signal %d)
  8919. #
  8920. # LILO boot/chain loaders, from Daniel Quinlan <quinlan@yggdrasil.com>
  8921. # this can be overridden by the DOS executable (COM) entry
  8922. 2    string        LILO        Linux/i386 LILO boot/chain loader
  8923. #
  8924. # PSF fonts, from H. Peter Anvin <hpa@yggdrasil.com>
  8925. 0    leshort        0x0436        Linux/i386 PC Screen Font data,
  8926. >2    byte        0        256 characters, no directory,
  8927. >2    byte        1        512 characters, no directory,
  8928. >2    byte        2        256 characters, Unicode directory,
  8929. >2    byte        3        512 characters, Unicode directory,
  8930. >3    byte        >0        8x%d
  8931. # Linux swap file, from Daniel Quinlan <quinlan@yggdrasil.com>
  8932. 4086    string        SWAP-SPACE    Linux/i386 swap file
  8933. # From: Jeff Bailey <jbailey@ubuntu.com>
  8934. # Linux swap file with swsusp1 image, from Jeff Bailey <jbailey@ubuntu.com>
  8935. 4076    string        SWAPSPACE2S1SUSPEND    Linux/i386 swap file (new style) with SWSUSP1 image
  8936. # according to man page of mkswap (8) March 1999
  8937. # volume label and UUID Russell Coker
  8938. # http://etbe.coker.com.au/2008/07/08/label-vs-uuid-vs-device/
  8939. 4086    string        SWAPSPACE2    Linux/i386 swap file (new style),
  8940. >0x400    long        x        version %d (4K pages),
  8941. >0x404    long        x        size %d pages,
  8942. >1052    string        \0        no label,
  8943. >1052    string        >\0        LABEL=%s,
  8944. >0x40c    belong        x        UUID=%08x
  8945. >0x410    beshort        x        \b-%04x
  8946. >0x412    beshort        x        \b-%04x
  8947. >0x414    beshort        x        \b-%04x
  8948. >0x416    belong        x        \b-%08x
  8949. >0x41a    beshort        x        \b%04x
  8950. # ECOFF magic for OSF/1 and Linux (only tested under Linux though)
  8951. #
  8952. #    from Erik Troan (ewt@redhat.com) examining od dumps, so this
  8953. #        could be wrong
  8954. #      updated by David Mosberger (davidm@azstarnet.com) based on
  8955. #      GNU BFD and MIPS info found below.
  8956. #
  8957. 0    leshort        0x0183        ECOFF alpha
  8958. >24    leshort        0407        executable
  8959. >24    leshort        0410        pure
  8960. >24    leshort        0413        demand paged
  8961. >8    long        >0        not stripped
  8962. >8    long        0        stripped
  8963. >23    leshort        >0        - version %ld.
  8964. #
  8965. # Linux kernel boot images, from Albert Cahalan <acahalan@cs.uml.edu>
  8966. # and others such as Axel Kohlmeyer <akohlmey@rincewind.chemie.uni-ulm.de>
  8967. # and Nicolßs Lichtmaier <nick@debian.org>
  8968. # All known start with: b8 c0 07 8e d8 b8 00 90 8e c0 b9 00 01 29 f6 29
  8969. # Linux kernel boot images (i386 arch) (Wolfram Kleff)
  8970. 514    string        HdrS        Linux kernel
  8971. >510    leshort        0xAA55        x86 boot executable
  8972. >>518    leshort        >0x1ff
  8973. >>>529    byte        0        zImage,
  8974. >>>529    byte        1        bzImage,
  8975. >>>(526.s+0x200) string    >\0        version %s,
  8976. >>498    leshort        1        RO-rootFS,
  8977. >>498    leshort        0        RW-rootFS,
  8978. >>508    leshort        >0        root_dev 0x%X,
  8979. >>502    leshort        >0        swap_dev 0x%X,
  8980. >>504    leshort        >0        RAMdisksize %u KB,
  8981. >>506    leshort        0xFFFF        Normal VGA
  8982. >>506    leshort        0xFFFE        Extended VGA
  8983. >>506    leshort        0xFFFD        Prompt for Videomode
  8984. >>506    leshort        >0        Video mode %d
  8985. # This also matches new kernels, which were caught above by "HdrS".
  8986. 0        belong    0xb8c0078e    Linux kernel
  8987. >0x1e3        string    Loading        version 1.3.79 or older
  8988. >0x1e9        string    Loading        from prehistoric times
  8989.  
  8990. # System.map files - Nicolßs Lichtmaier <nick@debian.org>
  8991. 8    search/1    \ A\ _text    Linux kernel symbol map text
  8992.  
  8993. # LSM entries - Nicolßs Lichtmaier <nick@debian.org>
  8994. 0    search/1    Begin3    Linux Software Map entry text
  8995. 0    search/1    Begin4    Linux Software Map entry text (new format)
  8996.  
  8997. # From Matt Zimmerman, enhanced for v3 by Matthew Palmer
  8998. 0    belong    0x4f4f4f4d    User-mode Linux COW file
  8999. >4    belong    <3        \b, version %d
  9000. >>8    string    >\0        \b, backing file %s
  9001. >4    belong    >2        \b, version %d
  9002. >>32    string    >\0        \b, backing file %s
  9003.  
  9004. ############################################################################
  9005. # Linux kernel versions
  9006.  
  9007. 0        string        \xb8\xc0\x07\x8e\xd8\xb8\x00\x90    Linux
  9008. >497        leshort        0        x86 boot sector
  9009. >>514        belong        0x8e    of a kernel from the dawn of time!
  9010. >>514        belong        0x908ed8b4    version 0.99-1.1.42
  9011. >>514        belong        0x908ed8b8    for memtest86
  9012.  
  9013. >497        leshort        !0        x86 kernel
  9014. >>504        leshort        >0        RAMdisksize=%u KB
  9015. >>502        leshort        >0        swap=0x%X
  9016. >>508        leshort        >0        root=0x%X
  9017. >>>498        leshort        1        \b-ro
  9018. >>>498        leshort        0        \b-rw
  9019. >>506        leshort        0xFFFF        vga=normal
  9020. >>506        leshort        0xFFFE        vga=extended
  9021. >>506        leshort        0xFFFD        vga=ask
  9022. >>506        leshort        >0        vga=%d
  9023. >>514        belong        0x908ed881    version 1.1.43-1.1.45
  9024. >>514        belong        0x15b281cd
  9025. >>>0xa8e    belong        0x55AA5a5a    version 1.1.46-1.2.13,1.3.0
  9026. >>>0xa99    belong        0x55AA5a5a    version 1.3.1,2
  9027. >>>0xaa3    belong        0x55AA5a5a    version 1.3.3-1.3.30
  9028. >>>0xaa6    belong        0x55AA5a5a    version 1.3.31-1.3.41
  9029. >>>0xb2b    belong        0x55AA5a5a    version 1.3.42-1.3.45
  9030. >>>0xaf7    belong        0x55AA5a5a    version 1.3.46-1.3.72
  9031. >>514        string        HdrS
  9032. >>>518        leshort        >0x1FF
  9033. >>>>529        byte        0        \b, zImage
  9034. >>>>529        byte        1        \b, bzImage
  9035. >>>>(526.s+0x200) string     >\0        \b, version %s
  9036.  
  9037. # Linux boot sector thefts.
  9038. 0        belong        0xb8c0078e    Linux
  9039. >0x1e6        belong        0x454c4b53    ELKS Kernel
  9040. >0x1e6        belong        !0x454c4b53    style boot sector
  9041.  
  9042. ############################################################################
  9043. # Linux 8086 executable
  9044. 0    lelong&0xFF0000FF 0xC30000E9    Linux-Dev86 executable, headerless
  9045. >5    string        .        
  9046. >>4    string        >\0        \b, libc version %s
  9047.  
  9048. 0    lelong&0xFF00FFFF 0x4000301    Linux-8086 executable
  9049. >2    byte&0x01    !0        \b, unmapped zero page
  9050. >2    byte&0x20    0        \b, impure
  9051. >2    byte&0x20    !0
  9052. >>2    byte&0x10    !0        \b, A_EXEC
  9053. >2    byte&0x02    !0        \b, A_PAL
  9054. >2    byte&0x04    !0        \b, A_NSYM
  9055. >2    byte&0x08    !0        \b, A_STAND
  9056. >2    byte&0x40    !0        \b, A_PURE
  9057. >2    byte&0x80    !0        \b, A_TOVLY
  9058. >28     long            !0              \b, not stripped
  9059. >37    string        .        
  9060. >>36    string        >\0        \b, libc version %s
  9061.  
  9062. # 0    lelong&0xFF00FFFF 0x10000301    ld86 I80386 executable
  9063. # 0    lelong&0xFF00FFFF 0xB000301    ld86 M68K executable
  9064. # 0    lelong&0xFF00FFFF 0xC000301    ld86 NS16K executable
  9065. # 0    lelong&0xFF00FFFF 0x17000301    ld86 SPARC executable
  9066.  
  9067. # SYSLINUX boot logo files (from 'ppmtolss16' sources)
  9068. # http://syslinux.zytor.com/
  9069. #
  9070. 0    lelong    =0x1413f33d        SYSLINUX' LSS16 image data
  9071. >4    leshort    x            \b, width %d
  9072. >6    leshort    x            \b, height %d
  9073.  
  9074. 0    string    OOOM            User-Mode-Linux's Copy-On-Write disk image
  9075. >4    belong    x            version %d
  9076.  
  9077. # SE Linux policy database
  9078. # From: Mike Frysinger <vapier@gentoo.org>
  9079. 0    lelong    0xf97cff8c        SE Linux policy
  9080. >16    lelong    x            v%d
  9081. >20    lelong    1            MLS
  9082. >24    lelong    x            %d symbols
  9083. >28    lelong    x            %d ocons
  9084.  
  9085. # Linux Logical Volume Manager (LVM) 
  9086. # Emmanuel VARAGNAT <emmanuel.varagnat@guzu.net>
  9087. #
  9088. # System ID, UUID and volume group name are 128 bytes long
  9089. # but they should never be full and initialized with zeros...
  9090. #
  9091. # LVM1
  9092. #
  9093. 0x0    string    HM\001        LVM1 (Linux Logical Volume Manager), version 1
  9094. >0x12c    string    >\0        , System ID: %s
  9095.  
  9096. 0x0    string    HM\002        LVM1 (Linux Logical Volume Manager), version 2
  9097. >0x12c    string    >\0        , System ID: %s
  9098.  
  9099. #  LVM2
  9100. #
  9101. # It seems that the label header can be in one the four first sector
  9102. # of the disk... (from _find_labeller in lib/label/label.c of LVM2)
  9103. #
  9104. # 0x200 seems to be the common case
  9105.  
  9106. 0x218         string    LVM2\ 001    LVM2 (Linux Logical Volume Manager)
  9107. # read the offset to add to the start of the header, and the header
  9108. # start in 0x200
  9109. >(0x214.l+0x200) string    >\0        , UUID: %s
  9110.  
  9111. 0x018         string    LVM2\ 001    LVM2 (Linux Logical Volume Manager)
  9112. >(0x014.l)     string    >\0        , UUID: %s
  9113.  
  9114. 0x418         string    LVM2\ 001    LVM2 (Linux Logical Volume Manager)
  9115. >(0x414.l+0x400) string    >\0        , UUID: %s
  9116.  
  9117. 0x618         string    LVM2\ 001    LVM2 (Linux Logical Volume Manager)
  9118. >(0x614.l+0x600) string    >\0        , UUID: %s
  9119.  
  9120. # LVM snapshot
  9121. # from Jason Farrel
  9122. 0    string    SnAp    LVM Snapshot (CopyOnWrite store)
  9123. >4    lelong    !0    - valid,
  9124. >4    lelong    0    - invalid,
  9125. >8    lelong    x    version %d,
  9126. >12    lelong    x    chunk_size %d
  9127.  
  9128. # SE Linux policy database
  9129. 0    lelong    0xf97cff8c        SE Linux policy
  9130. >16    lelong    x            v%d
  9131. >20    lelong    1            MLS
  9132. >24    lelong    x            %d symbols
  9133. >28    lelong    x            %d ocons
  9134.  
  9135. # LUKS: Linux Unified Key Setup, On-Disk Format, http://luks.endorphin.org/spec
  9136. # Anthon van der Neut (anthon@mnt.org)
  9137. 0    string    LUKS\xba\xbe    LUKS encrypted file,
  9138. >6    beshort x        ver %d
  9139. >8    string    x        [%s,
  9140. >40    string    x        %s,
  9141. >72    string    x        %s]
  9142. >168    string    x        UUID: %s
  9143.  
  9144.  
  9145. # Summary: Xen saved domain file
  9146. # Created by: Radek Vokal <rvokal@redhat.com>
  9147. 0    string        LinuxGuestRecord    Xen saved domain
  9148. >20    search/256    (name            
  9149. >>&1    string        x            (name %s)
  9150.  
  9151. # Type: Xen, the virtual machine monitor
  9152. # From: Radek Vokal <rvokal@redhat.com>
  9153. 0    string        LinuxGuestRecord    Xen saved domain
  9154. #>2    regex        \(name\ [^)]*\)        %s
  9155. >20    search/256    (name            (name
  9156. >>&1    string        x            %s...)
  9157. #------------------------------------------------------------------------------
  9158. # lisp:  file(1) magic for lisp programs
  9159. #
  9160. # various lisp types, from Daniel Quinlan (quinlan@yggdrasil.com)
  9161.  
  9162. # updated by Joerg Jenderek
  9163. # GRR: This lot is too weak
  9164. #0    string    ;;            
  9165. # windows INF files often begin with semicolon and use CRLF as line end
  9166. # lisp files are mainly created on unix system with LF as line end
  9167. #>2    search/4096    !\r        Lisp/Scheme program text
  9168. #>2    search/4096    \r        Windows INF file
  9169.  
  9170. 0    search/4096    (if\             Lisp/Scheme program text
  9171. !:mime    text/x-lisp
  9172. 0    search/4096    (setq\             Lisp/Scheme program text
  9173. !:mime    text/x-lisp
  9174. 0    search/4096    (defvar\         Lisp/Scheme program text
  9175. !:mime    text/x-lisp
  9176. 0    search/4096    (defparam\         Lisp/Scheme program text
  9177. !:mime    text/x-lisp
  9178. 0    search/4096    (defun\          Lisp/Scheme program text
  9179. !:mime    text/x-lisp
  9180. 0    search/4096    (autoload\         Lisp/Scheme program text
  9181. !:mime    text/x-lisp
  9182. 0    search/4096    (custom-set-variables\     Lisp/Scheme program text
  9183. !:mime    text/x-lisp
  9184.  
  9185. # Emacs 18 - this is always correct, but not very magical.
  9186. 0    string    \012(            Emacs v18 byte-compiled Lisp data
  9187. !:mime    application/x-elc
  9188. # Emacs 19+ - ver. recognition added by Ian Springer
  9189. # Also applies to XEmacs 19+ .elc files; could tell them apart with regexs
  9190. # - Chris Chittleborough <cchittleborough@yahoo.com.au>
  9191. 0    string    ;ELC    
  9192. >4    byte    >18            
  9193. >4    byte    <32            Emacs/XEmacs v%d byte-compiled Lisp data
  9194. !:mime    application/x-elc        
  9195.  
  9196. # Files produced by CLISP Common Lisp From: Bruno Haible <haible@ilog.fr>
  9197. 0    string    (SYSTEM::VERSION\040'    CLISP byte-compiled Lisp program (pre 2004-03-27)
  9198. 0    string    (|SYSTEM|::|VERSION|\040'    CLISP byte-compiled Lisp program text
  9199.  
  9200. 0    long    0x70768BD2        CLISP memory image data
  9201. 0    long    0xD28B7670        CLISP memory image data, other endian
  9202.  
  9203. #.com and .bin for MIT scheme 
  9204. 0    string    \372\372\372\372    MIT scheme (library?)
  9205.  
  9206. # From: David Allouche <david@allouche.net>
  9207. 0    search/1    \<TeXmacs|    TeXmacs document text
  9208. !:mime    text/texmacs
  9209.  
  9210. #------------------------------------------------------------------------------
  9211. # llvm:  file(1) magic for LLVM byte-codes
  9212. # URL:  http://llvm.org/docs/BitCodeFormat.html
  9213. # From: Al Stone <ahs3@fc.hp.com>
  9214.  
  9215. 0    string    llvm    LLVM byte-codes, uncompressed
  9216. 0    string    llvc0    LLVM byte-codes, null compression
  9217. 0    string    llvc1    LLVM byte-codes, gzip compression
  9218. 0    string    llvc2    LLVM byte-codes, bzip2 compression
  9219. 0    string    \xde\xc0\x17\x0b    LLVM bitcode, wrapper
  9220. 0       string    BC\xc0\xde    LLVM bitcode
  9221. #------------------------------------------------------------------------------
  9222. # lua:  file(1) magic for Lua scripting language
  9223. # URL:  http://www.lua.org/
  9224. # From: Reuben Thomas <rrt@sc3d.org>, Seo Sanghyeon <tinuviel@sparcs.kaist.ac.kr>
  9225.  
  9226. # Lua scripts
  9227. 0    search/1/b    #!\ /usr/bin/lua    Lua script text executable
  9228. !:mime    text/x-lua
  9229. 0    search/1/b    #!\ /usr/local/bin/lua    Lua script text executable
  9230. !:mime    text/x-lua
  9231. 0    search/1    #!/usr/bin/env\ lua    Lua script text executable
  9232. !:mime    text/x-lua
  9233. 0    search/1    #!\ /usr/bin/env\ lua    Lua script text executable
  9234. !:mime    text/x-lua
  9235.  
  9236. # Lua bytecode
  9237. 0    string        \033Lua            Lua bytecode,
  9238. >4    byte        0x50            version 5.0
  9239. >4    byte        0x51            version 5.1
  9240.  
  9241. #------------------------------------------------------------------------------
  9242. # luks:  file(1) magic for Linux Unified Key Setup
  9243. # URL:    http://luks.endorphin.org/spec
  9244. # From:    Anthon van der Neut <anthon@mnt.org>
  9245.  
  9246. 0    string        LUKS\xba\xbe    LUKS encrypted file,
  9247. >6    beshort        x        ver %d
  9248. >8    string        x        [%s,
  9249. >40    string        x        %s,
  9250. >72    string        x        %s]
  9251. >168    string        x        UUID: %s
  9252. #------------------------------------------------------------
  9253. # Mach has two magic numbers, 0xcafebabe and 0xfeedface.
  9254. # Unfortunately the first, cafebabe, is shared with
  9255. # Java ByteCode, so they are both handled in the file "cafebabe".
  9256. # The "feedface" ones are handled herein.
  9257. #------------------------------------------------------------
  9258. 0    lelong&0xfffffffe    0xfeedface    Mach-O
  9259. >0    byte        0xcf        64-bit
  9260. >12    lelong        1        object
  9261. >12    lelong        2        executable
  9262. >12    lelong        3        fixed virtual memory shared library
  9263. >12    lelong        4        core
  9264. >12    lelong        5        preload executable
  9265. >12    lelong        6        dynamically linked shared library
  9266. >12    lelong        7        dynamic linker
  9267. >12    lelong        8        bundle
  9268. >12    lelong        9        dynamically linked shared library stub
  9269. >12    lelong        >9
  9270. >>12    lelong        x        filetype=%ld
  9271. >4    lelong        <0
  9272. >>4    lelong        x        architecture=%ld
  9273. >4    lelong        1        vax
  9274. >4    lelong        2        romp
  9275. >4    lelong        3        architecture=3
  9276. >4    lelong        4        ns32032
  9277. >4    lelong        5        ns32332
  9278. >4    lelong        6        m68k
  9279. >4    lelong        7        i386
  9280. >4    lelong        8        mips
  9281. >4    lelong        9        ns32532
  9282. >4    lelong        10        architecture=10
  9283. >4    lelong        11        hppa
  9284. >4    lelong        12        acorn
  9285. >4    lelong        13        m88k
  9286. >4    lelong        14        sparc
  9287. >4    lelong        15        i860-big
  9288. >4    lelong        16        i860
  9289. >4    lelong        17        rs6000
  9290. >4    lelong        18        ppc
  9291. >4    lelong        16777234    ppc64
  9292. >4    lelong        >16777234
  9293. >>4    lelong        x        architecture=%ld
  9294. #
  9295. 0    belong&0xfffffffe    0xfeedface    Mach-O
  9296. >3    byte        0xcf        64-bit
  9297. >12    belong        1        object
  9298. >12    belong        2        executable
  9299. >12    belong        3        fixed virtual memory shared library
  9300. >12    belong        4        core
  9301. >12    belong        5        preload executable
  9302. >12    belong        6               dynamically linked shared library
  9303. >12    belong        7               dynamic linker
  9304. >12    belong        8        bundle
  9305. >12    belong        9        dynamically linked shared library stub
  9306. >12    belong        >9
  9307. >>12    belong        x        filetype=%ld
  9308. >4    belong        <0
  9309. >>4    belong        x        architecture=%ld
  9310. >4    belong        1        vax
  9311. >4    belong        2        romp
  9312. >4    belong        3        architecture=3
  9313. >4    belong        4        ns32032
  9314. >4    belong        5        ns32332
  9315. >4    belong        6        for m68k architecture
  9316. # from NeXTstep 3.0 <mach/machine.h>
  9317. # i.e. mc680x0_all, ignore
  9318. # >>8    belong        1        (mc68030)
  9319. >>8    belong        2        (mc68040)
  9320. >>8    belong        3        (mc68030 only)
  9321. >4    belong        7        i386
  9322. >4    belong        8        mips
  9323. >4    belong        9        ns32532
  9324. >4    belong        10        architecture=10
  9325. >4    belong        11        hppa
  9326. >4    belong        12        acorn
  9327. >4    belong        13        m88k
  9328. >4    belong        14        sparc
  9329. >4    belong        15        i860-big
  9330. >4    belong        16        i860
  9331. >4    belong        17        rs6000
  9332. >4    belong        18        ppc
  9333. >4    belong        16777234    ppc64
  9334. >4    belong        >16777234
  9335. >>4    belong        x        architecture=%ld
  9336.  
  9337. #------------------------------------------------------------------------------
  9338. # macintosh description
  9339. #
  9340. # BinHex is the Macintosh ASCII-encoded file format (see also "apple")
  9341. # Daniel Quinlan, quinlan@yggdrasil.com
  9342. 11    string    must\ be\ converted\ with\ BinHex    BinHex binary text
  9343. !:mime    application/mac-binhex40
  9344. >41    string    x                    \b, version %.3s
  9345.  
  9346. # Stuffit archives are the de facto standard of compression for Macintosh
  9347. # files obtained from most archives. (franklsm@tuns.ca)
  9348. 0    string        SIT!            StuffIt Archive (data)
  9349. !:mime    application/x-stuffit
  9350. !:apple    SIT!SIT!
  9351. >2    string        x            : %s
  9352. 0    string        SITD            StuffIt Deluxe (data)
  9353. >2    string        x            : %s
  9354. 0    string        Seg            StuffIt Deluxe Segment (data)
  9355. >2    string        x            : %s
  9356.  
  9357. # Newer StuffIt archives (grant@netbsd.org)
  9358. 0    string        StuffIt            StuffIt Archive
  9359. !:mime    application/x-stuffit
  9360. !:apple    SIT!SIT!
  9361. #>162    string        >0            : %s
  9362.  
  9363. # Macintosh Applications and Installation binaries (franklsm@tuns.ca)
  9364. # GRR: Too weak
  9365. #0    string        APPL            Macintosh Application (data)
  9366. #>2    string        x            \b: %s
  9367.  
  9368. # Macintosh System files (franklsm@tuns.ca)
  9369. # GRR: Too weak
  9370. #0    string        zsys            Macintosh System File (data)
  9371. #0    string        FNDR            Macintosh Finder (data)
  9372. #0    string        libr            Macintosh Library (data)
  9373. #>2    string        x            : %s
  9374. #0    string        shlb            Macintosh Shared Library (data)
  9375. #>2    string        x            : %s
  9376. #0    string        cdev            Macintosh Control Panel (data)
  9377. #>2    string        x            : %s
  9378. #0    string        INIT            Macintosh Extension (data)
  9379. #>2    string        x            : %s
  9380. #0    string        FFIL            Macintosh Truetype Font (data)
  9381. #>2    string        x            : %s
  9382. #0    string        LWFN            Macintosh Postscript Font (data)
  9383. #>2    string        x            : %s
  9384.  
  9385. # Additional Macintosh Files (franklsm@tuns.ca)
  9386. # GRR: Too weak
  9387. #0    string        PACT            Macintosh Compact Pro Archive (data)
  9388. #>2    string        x            : %s
  9389. #0    string        ttro            Macintosh TeachText File (data)
  9390. #>2    string        x            : %s
  9391. #0    string        TEXT            Macintosh TeachText File (data)
  9392. #>2    string        x            : %s
  9393. #0    string        PDF            Macintosh PDF File (data)
  9394. #>2    string        x            : %s
  9395.  
  9396. # MacBinary format (Eric Fischer, enf@pobox.com)
  9397. #
  9398. # Unfortunately MacBinary doesn't really have a magic number prior
  9399. # to the MacBinary III format.  The checksum is really the way to
  9400. # do it, but the magic file format isn't up to the challenge.
  9401. #
  9402. # 0    byte        0
  9403. # 1    byte                # filename length
  9404. # 2    string                # filename
  9405. # 65    string                # file type
  9406. # 69    string                # file creator
  9407. # 73    byte                # Finder flags
  9408. # 74    byte        0
  9409. # 75    beshort                # vertical posn in window
  9410. # 77    beshort                # horiz posn in window
  9411. # 79    beshort                # window or folder ID
  9412. # 81    byte                # protected?
  9413. # 82    byte        0
  9414. # 83    belong                # length of data segment
  9415. # 87    belong                # length of resource segment
  9416. # 91    belong                # file creation date
  9417. # 95    belong                # file modification date
  9418. # 99    beshort                # length of comment after resource
  9419. # 101    byte                # new Finder flags
  9420. # 102    string        mBIN        # (only in MacBinary III)
  9421. # 106    byte                # char. code of file name
  9422. # 107    byte                # still more Finder flags
  9423. # 116    belong                # total file length
  9424. # 120    beshort                # length of add'l header
  9425. # 122    byte        129        # for MacBinary II
  9426. # 122    byte        130        # for MacBinary III
  9427. # 123    byte        129        # minimum version that can read fmt
  9428. # 124    beshort                # checksum
  9429. #
  9430. # This attempts to use the version numbers as a magic number, requiring
  9431. # that the first one be 0x80, 0x81, 0x82, or 0x83, and that the second
  9432. # be 0x81.  This works for the files I have, but maybe not for everyone's.
  9433.  
  9434. # Unfortunately, this magic is quite weak - MPi
  9435. #122    beshort&0xFCFF    0x8081        Macintosh MacBinary data
  9436.  
  9437. # MacBinary I doesn't have the version number field at all, but MacBinary II
  9438. # has been in use since 1987 so I hope there aren't many really old files
  9439. # floating around that this will miss.  The original spec calls for using
  9440. # the nulls in 0, 74, and 82 as the magic number.
  9441. #
  9442. # Another possibility, that would also work for MacBinary I, is to use
  9443. # the assumption that 65-72 will all be ASCII (0x20-0x7F), that 73 will
  9444. # have bits 1 (changed), 2 (busy), 3 (bozo), and 6 (invisible) unset,
  9445. # and that 74 will be 0.  So something like
  9446. # 71     belong&0x80804EFF 0x00000000     Macintosh MacBinary data
  9447. # >73    byte&0x01    0x01        \b, inited
  9448. # >73    byte&0x02    0x02        \b, changed
  9449. # >73    byte&0x04    0x04        \b, busy
  9450. # >73    byte&0x08    0x08        \b, bozo
  9451. # >73    byte&0x10    0x10        \b, system
  9452. # >73    byte&0x10    0x20        \b, bundle
  9453. # >73    byte&0x10    0x40        \b, invisible
  9454. # >73    byte&0x10    0x80        \b, locked
  9455.  
  9456. #>65    string        x        \b, type "%4.4s"
  9457.  
  9458. #>65    string        8BIM        (PhotoShop)
  9459. #>65    string        ALB3        (PageMaker 3)
  9460. #>65    string        ALB4        (PageMaker 4)
  9461. #>65    string        ALT3        (PageMaker 3)
  9462. #>65    string        APPL        (application)
  9463. #>65    string        AWWP        (AppleWorks word processor)
  9464. #>65    string        CIRC        (simulated circuit)
  9465. #>65    string        DRWG        (MacDraw)
  9466. #>65    string        EPSF        (Encapsulated PostScript)
  9467. #>65    string        FFIL        (font suitcase)
  9468. #>65    string        FKEY        (function key)
  9469. #>65    string        FNDR        (Macintosh Finder)
  9470. #>65    string        GIFf        (GIF image)
  9471. #>65    string        Gzip        (GNU gzip)
  9472. #>65    string        INIT        (system extension)
  9473. #>65    string        LIB\         (library)
  9474. #>65    string        LWFN        (PostScript font)
  9475. #>65    string        MSBC        (Microsoft BASIC)
  9476. #>65    string        PACT        (Compact Pro archive)
  9477. #>65    string        PDF\         (Portable Document Format)
  9478. #>65    string        PICT        (picture)
  9479. #>65    string        PNTG        (MacPaint picture)
  9480. #>65    string        PREF        (preferences)
  9481. #>65    string        PROJ        (Think C project)
  9482. #>65    string        QPRJ        (Think Pascal project)
  9483. #>65    string        SCFL        (Defender scores)
  9484. #>65    string        SCRN        (startup screen)
  9485. #>65    string        SITD        (StuffIt Deluxe)
  9486. #>65    string        SPn3        (SuperPaint)
  9487. #>65    string        STAK        (HyperCard stack)
  9488. #>65    string        Seg\         (StuffIt segment)
  9489. #>65    string        TARF        (Unix tar archive)
  9490. #>65    string        TEXT        (ASCII)
  9491. #>65    string        TIFF        (TIFF image)
  9492. #>65    string        TOVF        (Eudora table of contents)
  9493. #>65    string        WDBN        (Microsoft Word word processor)
  9494. #>65    string        WORD        (MacWrite word processor)
  9495. #>65    string        XLS\         (Microsoft Excel)
  9496. #>65    string        ZIVM        (compress (.Z))
  9497. #>65    string        ZSYS        (Pre-System 7 system file)
  9498. #>65    string        acf3        (Aldus FreeHand)
  9499. #>65    string        cdev        (control panel)
  9500. #>65    string        dfil        (Desk Acessory suitcase)
  9501. #>65    string        libr        (library)
  9502. #>65    string        nX^d        (WriteNow word processor)
  9503. #>65    string        nX^w        (WriteNow dictionary)
  9504. #>65    string        rsrc        (resource)
  9505. #>65    string        scbk        (Scrapbook)
  9506. #>65    string        shlb        (shared library)
  9507. #>65    string        ttro        (SimpleText read-only)
  9508. #>65    string        zsys        (system file)
  9509.  
  9510. #>69    string        x        \b, creator "%4.4s"
  9511.  
  9512. # Somewhere, Apple has a repository of registered Creator IDs.  These are
  9513. # just the ones that I happened to have files from and was able to identify.
  9514.  
  9515. #>69    string        8BIM        (Adobe Photoshop)
  9516. #>69    string        ALD3        (PageMaker 3)
  9517. #>69    string        ALD4        (PageMaker 4)
  9518. #>69    string        ALFA        (Alpha editor)
  9519. #>69    string        APLS        (Apple Scanner)
  9520. #>69    string        APSC        (Apple Scanner)
  9521. #>69    string        BRKL        (Brickles)
  9522. #>69    string        BTFT        (BitFont)
  9523. #>69    string        CCL2         (Common Lisp 2)
  9524. #>69    string        CCL\         (Common Lisp)
  9525. #>69    string        CDmo        (The Talking Moose)
  9526. #>69    string        CPCT        (Compact Pro)
  9527. #>69    string        CSOm        (Eudora)
  9528. #>69    string        DMOV        (Font/DA Mover)
  9529. #>69    string        DSIM        (DigSim)
  9530. #>69    string        EDIT        (Macintosh Edit)
  9531. #>69    string        ERIK        (Macintosh Finder)
  9532. #>69    string        EXTR        (self-extracting archive)
  9533. #>69    string        Gzip        (GNU gzip)
  9534. #>69    string        KAHL        (Think C)
  9535. #>69    string        LWFU        (LaserWriter Utility)
  9536. #>69    string        LZIV        (compress)
  9537. #>69    string        MACA        (MacWrite)
  9538. #>69    string        MACS        (Macintosh operating system)
  9539. #>69    string        MAcK        (MacKnowledge terminal emulator)
  9540. #>69    string        MLND        (Defender)
  9541. #>69    string        MPNT        (MacPaint)
  9542. #>69    string        MSBB        (Microsoft BASIC (binary))
  9543. #>69    string        MSWD        (Microsoft Word)
  9544. #>69    string        NCSA        (NCSA Telnet)
  9545. #>69    string        PJMM        (Think Pascal)
  9546. #>69    string        PSAL        (Hunt the Wumpus)
  9547. #>69    string        PSI2        (Apple File Exchange)
  9548. #>69    string        R*ch        (BBEdit)
  9549. #>69    string        RMKR        (Resource Maker)
  9550. #>69    string        RSED        (Resource Editor)
  9551. #>69    string        Rich        (BBEdit)
  9552. #>69    string        SIT!        (StuffIt)
  9553. #>69    string        SPNT        (SuperPaint)
  9554. #>69    string        Unix        (NeXT Mac filesystem)
  9555. #>69    string        VIM!        (Vim editor)
  9556. #>69    string        WILD        (HyperCard)
  9557. #>69    string        XCEL        (Microsoft Excel)
  9558. #>69    string        aCa2        (Fontographer)
  9559. #>69    string        aca3        (Aldus FreeHand)
  9560. #>69    string        dosa        (Macintosh MS-DOS file system)
  9561. #>69    string        movr        (Font/DA Mover)
  9562. #>69    string        nX^n        (WriteNow)
  9563. #>69    string        pdos        (Apple ProDOS file system)
  9564. #>69    string        scbk        (Scrapbook)
  9565. #>69    string        ttxt        (SimpleText)
  9566. #>69    string        ufox        (Foreign File Access)
  9567.  
  9568. # Just in case...
  9569.  
  9570. 102    string        mBIN        MacBinary III data with surprising version number
  9571.  
  9572. # sas magic from Bruce Foster (bef@nwu.edu)
  9573. #
  9574. #0    string        SAS        SAS
  9575. #>8    string        x        %s
  9576. 0    string        SAS        SAS
  9577. >24    string        DATA        data file
  9578. >24    string        CATALOG        catalog
  9579. >24    string        INDEX        data file index
  9580. >24    string        VIEW        data view
  9581. # sas 7+ magic from Reinhold Koch (reinhold.koch@roche.com)
  9582. #
  9583. 0x54    string          SAS             SAS 7+
  9584. >0x9C   string          DATA            data file
  9585. >0x9C   string          CATALOG         catalog
  9586. >0x9C   string          INDEX           data file index
  9587. >0x9C   string          VIEW            data view
  9588.  
  9589. # spss magic for SPSS system and portable files, 
  9590. #     from Bruce Foster (bef@nwu.edu).
  9591.  
  9592. 0    long        0xc1e2c3c9    SPSS Portable File
  9593. >40    string         x        %s
  9594.  
  9595. 0    string        $FL2        SPSS System File
  9596. >24    string        x        %s
  9597.  
  9598. # Macintosh filesystem data
  9599. # From "Tom N Harris" <telliamed@mac.com>
  9600. # Fixed HFS+ and Partition map magic: Ethan Benson <erbenson@alaska.net>
  9601. # The MacOS epoch begins on 1 Jan 1904 instead of 1 Jan 1970, so these
  9602. # entries depend on the data arithmetic added after v.35
  9603. # There's also some Pascal strings in here, ditto...
  9604.  
  9605. # The boot block signature, according to IM:Files, is 
  9606. # "for HFS volumes, this field always contains the value 0x4C4B."
  9607. # But if this is true for MFS or HFS+ volumes, I don't know.
  9608. # Alternatively, the boot block is supposed to be zeroed if it's
  9609. # unused, so a simply >0 should suffice.
  9610.  
  9611. 0x400    beshort            0xD2D7        Macintosh MFS data
  9612. >0    beshort            0x4C4B        (bootable)
  9613. >0x40a    beshort            &0x8000        (locked)
  9614. >0x402    beldate-0x7C25B080    x        created: %s,
  9615. >0x406    beldate-0x7C25B080    >0        last backup: %s,
  9616. >0x414    belong            x        block size: %d,
  9617. >0x412    beshort            x        number of blocks: %d,
  9618. >0x424    pstring            x        volume name: %s
  9619.  
  9620. # "BD" is has many false positives
  9621. #0x400    beshort            0x4244        Macintosh HFS data
  9622. #>0    beshort            0x4C4B        (bootable)
  9623. #>0x40a    beshort            &0x8000        (locked)
  9624. #>0x40a    beshort            ^0x0100        (mounted)
  9625. #>0x40a    beshort            &0x0200        (spared blocks)
  9626. #>0x40a    beshort            &0x0800        (unclean)
  9627. #>0x47C    beshort            0x482B        (Embedded HFS+ Volume)
  9628. #>0x402    beldate-0x7C25B080    x        created: %s,
  9629. #>0x406    beldate-0x7C25B080    x        last modified: %s,
  9630. #>0x440    beldate-0x7C25B080    >0        last backup: %s,
  9631. #>0x414    belong            x        block size: %d,
  9632. #>0x412    beshort            x        number of blocks: %d,
  9633. #>0x424    pstring            x        volume name: %s
  9634.  
  9635. 0x400    beshort            0x482B        Macintosh HFS Extended
  9636. >&0    beshort            x        version %d data
  9637. >0    beshort            0x4C4B        (bootable)
  9638. >0x404    belong            ^0x00000100    (mounted)
  9639. >&2    belong            &0x00000200    (spared blocks)
  9640. >&2    belong            &0x00000800    (unclean)
  9641. >&2    belong            &0x00008000    (locked)
  9642. >&6    string            x        last mounted by: '%.4s',
  9643. # really, that should be treated as a belong and we print a string
  9644. # based on the value. TN1150 only mentions '8.10' for "MacOS 8.1"
  9645. >&14    beldate-0x7C25B080    x        created: %s,
  9646. # only the creation date is local time, all other timestamps in HFS+ are UTC.
  9647. >&18    bedate-0x7C25B080    x        last modified: %s,
  9648. >&22    bedate-0x7C25B080    >0        last backup: %s,
  9649. >&26    bedate-0x7C25B080    >0        last checked: %s,
  9650. >&38    belong            x        block size: %d,
  9651. >&42    belong            x        number of blocks: %d,
  9652. >&46    belong            x        free blocks: %d
  9653.  
  9654. # I don't think this is really necessary since it doesn't do much and 
  9655. # anything with a valid driver descriptor will also have a valid
  9656. # partition map
  9657. #0        beshort        0x4552        Apple Device Driver data
  9658. #>&24        beshort        =1        \b, MacOS
  9659.  
  9660. # Is that the partition type a cstring or a pstring? Well, IM says "strings 
  9661. # shorter than 32 bytes must be terminated with NULL" so I'll treat it as a 
  9662. # cstring. Of course, partitions can contain more than four entries, but 
  9663. # what're you gonna do?
  9664. # GRR: This magic is too weak, it is just "PM"
  9665. #0x200        beshort        0x504D        Apple Partition data
  9666. #>0x2        beshort        x        (block size: %d):
  9667. #>0x230        string        x        first type: %s,
  9668. #>0x210        string        x        name: %s,
  9669. #>0x254        belong        x        number of blocks: %d,
  9670. #>0x400        beshort        0x504D        
  9671. #>>0x430        string        x        second type: %s,
  9672. #>>0x410        string        x        name: %s,
  9673. #>>0x454        belong        x        number of blocks: %d,
  9674. #>>0x600        beshort        0x504D
  9675. #>>>0x630    string        x        third type: %s,
  9676. #>>>0x610    string        x        name: %s,
  9677. #>>>0x654    belong        x        number of blocks: %d,
  9678. #>>0x800        beshort        0x504D        
  9679. #>>>0x830    string        x        fourth type: %s,
  9680. #>>>0x810    string        x        name: %s,
  9681. #>>>0x854    belong        x        number of blocks: %d,
  9682. #>>>0xa00    beshort        0x504D        
  9683. #>>>>0xa30    string        x        fifth type: %s,
  9684. #>>>>0xa10    string        x        name: %s,
  9685. #>>>>0xa54    belong        x        number of blocks: %d
  9686. #>>>0xc00    beshort        0x504D
  9687. #>>>>0xc30    string        x        sixth type: %s,
  9688. #>>>>0xc10    string        x        name: %s,
  9689. #>>>>0xc54    belong        x        number of blocks: %d
  9690. ## AFAIK, only the signature is different
  9691. #0x200        beshort        0x5453        Apple Old Partition data
  9692. #>0x2        beshort        x        block size: %d,
  9693. #>0x230        string        x        first type: %s,
  9694. #>0x210        string        x        name: %s,
  9695. #>0x254        belong        x        number of blocks: %d,
  9696. #>0x400        beshort        0x504D        
  9697. #>>0x430        string        x        second type: %s,
  9698. #>>0x410        string        x        name: %s,
  9699. #>>0x454        belong        x        number of blocks: %d,
  9700. #>>0x800        beshort        0x504D        
  9701. #>>>0x830    string        x        third type: %s,
  9702. #>>>0x810    string        x        name: %s,
  9703. #>>>0x854    belong        x        number of blocks: %d,
  9704. #>>>0xa00    beshort        0x504D        
  9705. #>>>>0xa30    string        x        fourth type: %s,
  9706. #>>>>0xa10    string        x        name: %s,
  9707. #>>>>0xa54    belong        x        number of blocks: %d
  9708.  
  9709. # From: Remi Mommsen <mommsen@slac.stanford.edu>
  9710. 0        string        BOMStore    Mac OS X bill of materials (BOM) file
  9711.  
  9712. #------------------------------------------------------------------------------
  9713. # magic:  file(1) magic for magic files
  9714. #
  9715. 0    string        #\ Magic    magic text file for file(1) cmd
  9716. 0    lelong        0xF11E041C    magic binary file for file(1) cmd
  9717. >4    lelong        x        (version %d) (little endian)
  9718. 0    belong        0xF11E041C    magic binary file for file(1) cmd
  9719. >4    belong        x        (version %d) (big endian)
  9720. #------------------------------------------------------------------------------
  9721. # mail.news:  file(1) magic for mail and news
  9722. #
  9723. # Unfortunately, saved netnews also has From line added in some news software.
  9724. #0    string        From         mail text
  9725. # There are tests to ascmagic.c to cope with mail and news.
  9726. 0    string        Relay-Version:     old news text
  9727. !:mime    message/rfc822
  9728. 0    string        #!\ rnews    batched news text
  9729. !:mime    message/rfc822
  9730. 0    string        N#!\ rnews    mailed, batched news text
  9731. !:mime    message/rfc822
  9732. 0    string        Forward\ to     mail forwarding text
  9733. !:mime    message/rfc822
  9734. 0    string        Pipe\ to     mail piping text
  9735. !:mime    message/rfc822
  9736. 0    string        Return-Path:    smtp mail text
  9737. !:mime    message/rfc822
  9738. 0    string        Path:        news text
  9739. !:mime    message/news
  9740. 0    string        Xref:        news text
  9741. !:mime    message/news
  9742. 0    string        From:        news or mail text
  9743. !:mime    message/rfc822
  9744. 0    string        Article     saved news text
  9745. !:mime    message/news
  9746. 0    string        BABYL        Emacs RMAIL text
  9747. 0    string        Received:    RFC 822 mail text
  9748. !:mime    message/rfc822
  9749. 0    string        MIME-Version:    MIME entity text
  9750. #0    string        Content-    MIME entity text
  9751.  
  9752. # TNEF files...
  9753. 0    lelong        0x223E9F78    Transport Neutral Encapsulation Format
  9754.  
  9755. # From: Kevin Sullivan <ksulliva@psc.edu>
  9756. 0    string        *mbx*        MBX mail folder
  9757.  
  9758. # From: Simon Matter <simon.matter@invoca.ch>
  9759. 0    string        \241\002\213\015skiplist\ file\0\0\0    Cyrus skiplist DB
  9760.  
  9761. # JAM(mbp) Fidonet message area databases
  9762. # JHR file
  9763. 0    string    JAM\0            JAM message area header file
  9764. >12    leshort >0            (%d messages)
  9765.  
  9766. # Squish Fidonet message area databases
  9767. # SQD file (requires at least one message in the area)
  9768. # XXX: Weak magic
  9769. #256    leshort    0xAFAE4453        Squish message area data file
  9770. #>4    leshort    >0            (%d messages)
  9771.  
  9772. #0    string        \<!--\ MHonArc        text/html; x-type=mhonarc
  9773.  
  9774. #------------------------------------------------------------------------------
  9775. # maple:  file(1) magic for maple files
  9776. # "H. Nanosecond" <aldomel@ix.netcom.com>
  9777. # Maple V release 4, a multi-purpose math program
  9778. #
  9779.  
  9780. # maple library .lib
  9781. 0    string    \000MVR4\nI    MapleVr4 library
  9782.  
  9783. # .ind
  9784. # no magic for these :-(
  9785. # they are compiled indexes for maple files
  9786.  
  9787. # .hdb 
  9788. 0    string    \000\004\000\000    Maple help database
  9789.  
  9790. # .mhp
  9791. # this has the form <PACKAGE=name>
  9792. 0    string    \<PACKAGE=    Maple help file
  9793. 0    string    \<HELP\ NAME=    Maple help file
  9794. 0    string    \n\<HELP\ NAME=    Maple help file with extra carriage return at start (yuck)
  9795. #0    string    #\ Newton    Maple help file, old style
  9796. 0    string    #\ daub    Maple help file, old style
  9797. #0    string    #===========    Maple help file, old style
  9798.  
  9799. # .mws
  9800. 0    string    \000\000\001\044\000\221    Maple worksheet
  9801. #this is anomalous
  9802. 0    string    WriteNow\000\002\000\001\000\000\000\000\100\000\000\000\000\000    Maple worksheet, but weird
  9803. # this has the form {VERSION 2 3 "IBM INTEL NT" "2.3" }\n
  9804. # that is {VERSION major_version miunor_version computer_type version_string}
  9805. 0    string    {VERSION\     Maple worksheet
  9806. >9    string    >\0    version %.1s.
  9807. >>>11    string    >\0    %.1s
  9808.  
  9809. # .mps
  9810. 0    string    \0\0\001$    Maple something
  9811. # from byte 4 it is either 'nul E' or 'soh R'
  9812. # I think 'nul E' means a file that was saved as  a different name
  9813. # a sort of revision marking
  9814. # 'soh R' means new 
  9815. >4    string    \000\105    An old revision
  9816. >4    string    \001\122    The latest save
  9817.  
  9818. # .mpl
  9819. # some of these are the same as .mps above
  9820. #0000000 000 000 001 044 000 105 same as .mps
  9821. #0000000 000 000 001 044 001 122 same as .mps
  9822.  
  9823. 0    string    #\n##\ <SHAREFILE=    Maple something
  9824. 0    string    \n#\n##\ <SHAREFILE=    Maple something
  9825. 0    string    ##\ <SHAREFILE=    Maple something
  9826. 0    string    #\r##\ <SHAREFILE=    Maple something
  9827. 0    string    \r#\r##\ <SHAREFILE=    Maple something
  9828. 0    string    #\ \r##\ <DESCRIBE>    Maple something anomalous.
  9829.  
  9830. #------------------------------------------------------------------------------
  9831. # mathcad:  file(1) magic for Mathcad documents
  9832. # URL:    http://www.mathsoft.com/
  9833. # From:    Josh Triplett <josh@freedesktop.org>
  9834.  
  9835. 0    string    .MCAD\t        Mathcad document
  9836. #------------------------------------------------------------------------------
  9837. # mathematica:  file(1) magic for mathematica files
  9838. # "H. Nanosecond" <aldomel@ix.netcom.com>
  9839. # Mathematica a multi-purpose math program
  9840. # versions 2.2 and 3.0
  9841.  
  9842. #mathematica .mb
  9843. 0    string    \064\024\012\000\035\000\000\000    Mathematica version 2 notebook
  9844. 0    string    \064\024\011\000\035\000\000\000    Mathematica version 2 notebook
  9845.  
  9846. # .ma
  9847. # multiple possibilites:
  9848.  
  9849. 0    string    (*^\n\n::[\011frontEndVersion\ =\     Mathematica notebook
  9850. #>41    string    >\0    %s
  9851.  
  9852. #0    string    (*^\n\n::[\011palette    Mathematica notebook version 2.x
  9853.  
  9854. #0    string    (*^\n\n::[\011Information    Mathematica notebook version 2.x
  9855. #>675    string    >\0    %s #doesn't work well
  9856.  
  9857. # there may be 'cr' instread of 'nl' in some does this matter?
  9858.  
  9859. # generic:
  9860. 0    string    (*^\r\r::[\011    Mathematica notebook version 2.x
  9861. 0    string    (*^\r\n\r\n::[\011    Mathematica notebook version 2.x
  9862. 0    string    (*^\015            Mathematica notebook version 2.x
  9863. 0    string    (*^\n\r\n\r::[\011    Mathematica notebook version 2.x
  9864. 0    string    (*^\r::[\011    Mathematica notebook version 2.x
  9865. 0    string    (*^\r\n::[\011    Mathematica notebook version 2.x
  9866. 0    string    (*^\n\n::[\011    Mathematica notebook version 2.x
  9867. 0    string    (*^\n::[\011    Mathematica notebook version 2.x
  9868.  
  9869.  
  9870. # Mathematica .mx files
  9871.  
  9872. #0    string    (*This\ is\ a\ Mathematica\ binary\ dump\ file.\ It\ can\ be\ loaded\ with\ Get.*)    Mathematica binary file
  9873. 0    string    (*This\ is\ a\ Mathematica\ binary\     Mathematica binary file
  9874. #>71    string \000\010\010\010\010\000\000\000\000\000\000\010\100\010\000\000\000    
  9875. # >71... is optional
  9876. >88    string    >\0    from %s
  9877.  
  9878.  
  9879. # Mathematica files PBF:
  9880. # 115 115 101 120 102 106 000 001 000 000 000 203 000 001 000
  9881. 0    string    MMAPBF\000\001\000\000\000\203\000\001\000    Mathematica PBF (fonts I think)
  9882.  
  9883. # .ml files  These are menu resources I think
  9884. # these start with "[0-9][0-9][0-9]\ A~[0-9][0-9][0-9]\ 
  9885. # how to put that into a magic rule?
  9886. 4    string    \ A~    MAthematica .ml file
  9887.  
  9888. # .nb files
  9889. #too long 0    string    (***********************************************************************\n\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Mathematica-Compatible Notebook    Mathematica 3.0 notebook
  9890. 0    string    (***********************    Mathematica 3.0 notebook
  9891.  
  9892. # other (* matches it is a comment start in these langs
  9893. # GRR: Too weak; also matches other languages e.g. ML
  9894. #0    string    (*    Mathematica, or Pascal, Modula-2 or 3 code text
  9895.  
  9896. #########################
  9897. # MatLab v5
  9898. 0       string  MATLAB  Matlab v5 mat-file
  9899. >126    short   0x494d  (big endian)
  9900. >>124   beshort x       version 0x%04x
  9901. >126    short   0x4d49  (little endian)
  9902. >>124   leshort x       version 0x%04x
  9903.  
  9904.  
  9905. #------------------------------------------------------------------------------
  9906. # matroska:  file(1) magic for Matroska files
  9907. #
  9908. # See http://www.matroska.org/
  9909. #
  9910.  
  9911. # EBML id:
  9912. 0        belong        0x1a45dfa3
  9913. # DocType id:
  9914. >5        beshort        0x4282
  9915. # DocType contents:
  9916. >>8        string        matroska    Matroska data
  9917.  
  9918. #------------------------------------------------------------------------------
  9919. # Mavroyanopoulos Nikos <nmav@hellug.gr>
  9920. # mcrypt:   file(1) magic for mcrypt 2.2.x;
  9921. 0    string        \0m\3        mcrypt 2.5 encrypted data,
  9922. >4    string        >\0        algorithm: %s,
  9923. >>&1    leshort        >0        keysize: %d bytes,
  9924. >>>&0    string        >\0        mode: %s,
  9925.  
  9926. 0    string        \0m\2        mcrypt 2.2 encrypted data,
  9927. >3    byte        0        algorithm: blowfish-448,
  9928. >3    byte        1        algorithm: DES,
  9929. >3    byte        2        algorithm: 3DES,
  9930. >3    byte        3        algorithm: 3-WAY,
  9931. >3    byte        4        algorithm: GOST,
  9932. >3    byte        6        algorithm: SAFER-SK64,
  9933. >3    byte        7        algorithm: SAFER-SK128,
  9934. >3    byte        8        algorithm: CAST-128,
  9935. >3    byte        9        algorithm: xTEA,
  9936. >3    byte        10        algorithm: TWOFISH-128,
  9937. >3    byte        11        algorithm: RC2,
  9938. >3    byte        12        algorithm: TWOFISH-192,
  9939. >3    byte        13        algorithm: TWOFISH-256,
  9940. >3    byte        14        algorithm: blowfish-128,
  9941. >3    byte        15        algorithm: blowfish-192,
  9942. >3    byte        16        algorithm: blowfish-256,
  9943. >3    byte        100        algorithm: RC6,
  9944. >3    byte        101        algorithm: IDEA,
  9945. >4    byte        0        mode: CBC,
  9946. >4    byte        1        mode: ECB,
  9947. >4    byte        2        mode: CFB,
  9948. >4    byte        3        mode: OFB,
  9949. >4    byte        4        mode: nOFB,
  9950. >5    byte        0        keymode: 8bit
  9951. >5    byte        1        keymode: 4bit
  9952. >5    byte        2        keymode: SHA-1 hash
  9953. >5    byte        3        keymode: MD5 hash
  9954.  
  9955. #------------------------------------------------------------------------------
  9956. # mercurial:  file(1) magic for Mercurial changeset bundles
  9957. # http://www.selenic.com/mercurial/wiki/
  9958. #
  9959. # Jesse Glick (jesse.glick@sun.com)
  9960. #
  9961.  
  9962. 0    string        HG10        Mercurial changeset bundle
  9963. >4    string        UN        (uncompressed)
  9964. >4    string        GZ        (gzip compressed)
  9965. >4    string        BZ        (bzip2 compressed)
  9966. #------------------------------------------------------------------------------
  9967. # mime:  file(1) magic for MIME encoded files
  9968. #
  9969. 0    string        Content-Type:\ 
  9970. >14    string        >\0        %s
  9971. 0    string        Content-Type:
  9972. >13    string        >\0        %s
  9973.  
  9974. #------------------------------------------------------------------------------
  9975. # mips:  file(1) magic for Silicon Graphics (MIPS, IRIS, IRIX, etc.)
  9976. #                         Dec Ultrix (MIPS)
  9977. # all of SGI's *current* machines and OSes run in big-endian mode on the
  9978. # MIPS machines, as far as I know.
  9979. #
  9980. # XXX - what is the blank "-" line?
  9981. #
  9982. # kbd file definitions
  9983. 0    string    kbd!map        kbd map file
  9984. >8    byte    >0        Ver %d:
  9985. >10    short    >0        with %d table(s)
  9986. 0    belong    0407        old SGI 68020 executable
  9987. 0    belong    0410        old SGI 68020 pure executable
  9988. 0    beshort    0x8765        disk quotas file
  9989. 0    beshort    0x0506        IRIS Showcase file
  9990. >2    byte    0x49        -
  9991. >3    byte    x        - version %ld
  9992. 0    beshort    0x0226        IRIS Showcase template
  9993. >2    byte    0x63        -
  9994. >3    byte    x        - version %ld
  9995. 0    belong    0x5343464d    IRIS Showcase file
  9996. >4    byte    x        - version %ld
  9997. 0    belong    0x5443464d    IRIS Showcase template
  9998. >4    byte    x        - version %ld
  9999. 0    belong    0xdeadbabe    IRIX Parallel Arena
  10000. >8    belong    >0        - version %ld
  10001. #
  10002. 0    beshort    0x0160        MIPSEB ECOFF executable
  10003. >20    beshort    0407        (impure)
  10004. >20    beshort    0410        (swapped)
  10005. >20    beshort    0413        (paged)
  10006. >8    belong    >0        not stripped
  10007. >8    belong    0        stripped
  10008. >22    byte    x        - version %ld
  10009. >23    byte    x        .%ld
  10010. #
  10011. 0    beshort    0x0162        MIPSEL-BE ECOFF executable
  10012. >20    beshort    0407        (impure)
  10013. >20    beshort    0410        (swapped)
  10014. >20    beshort    0413        (paged)
  10015. >8    belong    >0        not stripped
  10016. >8    belong    0        stripped
  10017. >23    byte    x        - version %d
  10018. >22    byte    x        .%ld
  10019. #
  10020. 0    beshort    0x6001        MIPSEB-LE ECOFF executable
  10021. >20    beshort    03401        (impure)
  10022. >20    beshort    04001        (swapped)
  10023. >20    beshort    05401        (paged)
  10024. >8    belong    >0        not stripped
  10025. >8    belong    0        stripped
  10026. >23    byte    x        - version %d
  10027. >22    byte    x        .%ld
  10028. #
  10029. 0    beshort    0x6201        MIPSEL ECOFF executable
  10030. >20    beshort    03401        (impure)
  10031. >20    beshort    04001        (swapped)
  10032. >20    beshort    05401        (paged)
  10033. >8    belong    >0        not stripped
  10034. >8    belong    0        stripped
  10035. >23    byte    x        - version %ld
  10036. >22    byte    x        .%ld
  10037. #
  10038. # MIPS 2 additions
  10039. #
  10040. 0    beshort    0x0163        MIPSEB MIPS-II ECOFF executable
  10041. >20    beshort    0407        (impure)
  10042. >20    beshort    0410        (swapped)
  10043. >20    beshort    0413        (paged)
  10044. >8    belong    >0        not stripped
  10045. >8    belong    0        stripped
  10046. >22    byte    x        - version %ld
  10047. >23    byte    x        .%ld
  10048. #
  10049. 0    beshort    0x0166        MIPSEL-BE MIPS-II ECOFF executable
  10050. >20    beshort    0407        (impure)
  10051. >20    beshort    0410        (swapped)
  10052. >20    beshort    0413        (paged)
  10053. >8    belong    >0        not stripped
  10054. >8    belong    0        stripped
  10055. >22    byte    x        - version %ld
  10056. >23    byte    x        .%ld
  10057. #
  10058. 0    beshort    0x6301        MIPSEB-LE MIPS-II ECOFF executable
  10059. >20    beshort    03401        (impure)
  10060. >20    beshort    04001        (swapped)
  10061. >20    beshort    05401        (paged)
  10062. >8    belong    >0        not stripped
  10063. >8    belong    0        stripped
  10064. >23    byte    x        - version %ld
  10065. >22    byte    x        .%ld
  10066. #
  10067. 0    beshort    0x6601        MIPSEL MIPS-II ECOFF executable
  10068. >20    beshort    03401        (impure)
  10069. >20    beshort    04001        (swapped)
  10070. >20    beshort    05401        (paged)
  10071. >8    belong    >0        not stripped
  10072. >8    belong    0        stripped
  10073. >23    byte    x        - version %ld
  10074. >22    byte    x        .%ld
  10075. #
  10076. # MIPS 3 additions
  10077. #
  10078. 0    beshort    0x0140        MIPSEB MIPS-III ECOFF executable
  10079. >20    beshort    0407        (impure)
  10080. >20    beshort    0410        (swapped)
  10081. >20    beshort    0413        (paged)
  10082. >8    belong    >0        not stripped
  10083. >8    belong    0        stripped
  10084. >22    byte    x        - version %ld
  10085. >23    byte    x        .%ld
  10086. #
  10087. 0    beshort    0x0142        MIPSEL-BE MIPS-III ECOFF executable
  10088. >20    beshort    0407        (impure)
  10089. >20    beshort    0410        (swapped)
  10090. >20    beshort    0413        (paged)
  10091. >8    belong    >0        not stripped
  10092. >8    belong    0        stripped
  10093. >22    byte    x        - version %ld
  10094. >23    byte    x        .%ld
  10095. #
  10096. 0    beshort    0x4001        MIPSEB-LE MIPS-III ECOFF executable
  10097. >20    beshort    03401        (impure)
  10098. >20    beshort    04001        (swapped)
  10099. >20    beshort    05401        (paged)
  10100. >8    belong    >0        not stripped
  10101. >8    belong    0        stripped
  10102. >23    byte    x        - version %ld
  10103. >22    byte    x        .%ld
  10104. #
  10105. 0    beshort    0x4201        MIPSEL MIPS-III ECOFF executable
  10106. >20    beshort    03401        (impure)
  10107. >20    beshort    04001        (swapped)
  10108. >20    beshort    05401        (paged)
  10109. >8    belong    >0        not stripped
  10110. >8    belong    0        stripped
  10111. >23    byte    x        - version %ld
  10112. >22    byte    x        .%ld
  10113. #
  10114. 0    beshort    0x180        MIPSEB Ucode
  10115. 0    beshort    0x182        MIPSEL-BE Ucode
  10116. # 32bit core file
  10117. 0    belong    0xdeadadb0    IRIX core dump
  10118. >4    belong    1        of
  10119. >16    string    >\0        '%s'
  10120. # 64bit core file
  10121. 0    belong    0xdeadad40    IRIX 64-bit core dump
  10122. >4    belong    1        of
  10123. >16    string    >\0        '%s'
  10124. # N32bit core file
  10125. 0       belong    0xbabec0bb    IRIX N32 core dump
  10126. >4      belong    1               of
  10127. >16     string    >\0             '%s'
  10128. # New style crash dump file
  10129. 0    string    \x43\x72\x73\x68\x44\x75\x6d\x70    IRIX vmcore dump of
  10130. >36    string    >\0                    '%s'
  10131. # Trusted IRIX info
  10132. 0    string    SGIAUDIT    SGI Audit file
  10133. >8    byte    x        - version %d
  10134. >9    byte    x        .%ld
  10135. #
  10136. 0    string    WNGZWZSC    Wingz compiled script
  10137. 0    string    WNGZWZSS    Wingz spreadsheet
  10138. 0    string    WNGZWZHP    Wingz help file
  10139. #
  10140. 0    string    #Inventor V    IRIS Inventor 1.0 file
  10141. 0    string    #Inventor V2    Open Inventor 2.0 file
  10142. # GLF is OpenGL stream encoding
  10143. 0    string    glfHeadMagic();        GLF_TEXT
  10144. 4    belong    0x7d000000        GLF_BINARY_LSB_FIRST
  10145. 4    belong    0x0000007d        GLF_BINARY_MSB_FIRST
  10146. # GLS is OpenGL stream encoding; GLS is the successor of GLF
  10147. 0    string    glsBeginGLS(        GLS_TEXT
  10148. 4    belong    0x10000000        GLS_BINARY_LSB_FIRST
  10149. 4    belong    0x00000010        GLS_BINARY_MSB_FIRST
  10150.  
  10151. #------------------------------------------------------------------------------
  10152. # mirage:  file(1) magic for Mirage executables
  10153. #
  10154. # XXX - byte order?
  10155. #
  10156. 0    long    31415        Mirage Assembler m.out executable
  10157. #-----------------------------------------------------------------------------
  10158. # misctools:  file(1) magic for miscellaneous UNIX tools.
  10159. #
  10160. 0    search/1    %%!!            X-Post-It-Note text
  10161. 0    string/c    BEGIN:VCALENDAR        vCalendar calendar file
  10162. 0    string/c    BEGIN:VCARD        vCard visiting card
  10163. !:mime    text/x-vcard
  10164.  
  10165. # From: Alex Beregszaszi <alex@fsn.hu>
  10166. 4    string    gtktalog        GNOME Catalogue (gtktalog)
  10167. >13    string    >\0            version %s
  10168.  
  10169. # Summary: Libtool library file
  10170. # Extension: .la
  10171. # Submitted by: Tomasz Trojanowski <tomek@uninet.com.pl>
  10172. 0    search/80    .la\ -\ a\ libtool\ library\ file    libtool library file
  10173.  
  10174. # Summary: Libtool object file
  10175. # Extension: .lo
  10176. # Submitted by: Abel Cheung <abelcheung@gmail.com>
  10177. 0    search/80    .lo\ -\ a\ libtool\ object\ file    libtool object file
  10178.  
  10179. #------------------------------------------------------------------------------
  10180. # mkid:  file(1) magic for mkid(1) databases
  10181. #
  10182. # ID is the binary tags database produced by mkid(1).
  10183. #
  10184. # XXX - byte order?
  10185. #
  10186. 0    string        \311\304    ID tags data
  10187. >2    short        >0        version %d
  10188.  
  10189. #------------------------------------------------------------------------------
  10190. # mlssa: file(1) magic for MLSSA datafiles
  10191. #
  10192. 0        lelong        0xffffabcd    MLSSA datafile,
  10193. >4        leshort        x        algorithm %d,
  10194. >10        lelong        x        %d samples
  10195.  
  10196. #------------------------------------------------------------------------------
  10197. # mmdf:  file(1) magic for MMDF mail files
  10198. #
  10199. 0    string    \001\001\001\001    MMDF mailbox
  10200. #------------------------------------------------------------------------------
  10201. # modem:  file(1) magic for modem programs
  10202. #
  10203. # From: Florian La Roche <florian@knorke.saar.de>
  10204. 1    string        PC\ Research,\ Inc    Digifax-G3-File
  10205. >29    byte        1            \b, fine resolution
  10206. >29    byte        0            \b, normal resolution
  10207.  
  10208. 0    short        0x0100        raw G3 data, byte-padded
  10209. 0    short        0x1400        raw G3 data
  10210. #
  10211. # Magic data for vgetty voice formats
  10212. # (Martin Seine & Marc Eberhard)
  10213.  
  10214. #
  10215. # raw modem data version 1
  10216. #
  10217. 0    string    RMD1      raw modem data
  10218. >4   string    >\0       (%s /
  10219. >20  short     >0        compression type 0x%04x)
  10220.  
  10221. #
  10222. # portable voice format 1
  10223. #
  10224. 0    string    PVF1\n         portable voice format
  10225. >5   string    >\0       (binary %s)
  10226.  
  10227. #
  10228. # portable voice format 2
  10229. #
  10230. 0    string    PVF2\n         portable voice format
  10231. >5   string >\0          (ascii %s)
  10232.  
  10233.  
  10234. #------------------------------------------------------------------------------
  10235. # motorola:  file(1) magic for Motorola 68K and 88K binaries
  10236. #
  10237. # 68K
  10238. #
  10239. 0    beshort        0520        mc68k COFF
  10240. >18    beshort        ^00000020    object
  10241. >18    beshort        &00000020    executable
  10242. >12    belong        >0        not stripped
  10243. >168    string        .lowmem        Apple toolbox
  10244. >20    beshort        0407        (impure)
  10245. >20    beshort        0410        (pure)
  10246. >20    beshort        0413        (demand paged)
  10247. >20    beshort        0421        (standalone)
  10248. 0    beshort        0521        mc68k executable (shared)
  10249. >12    belong        >0        not stripped
  10250. 0    beshort        0522        mc68k executable (shared demand paged)
  10251. >12    belong        >0        not stripped
  10252. #
  10253. # Motorola/UniSoft 68K Binary Compatibility Standard (BCS)
  10254. #
  10255. 0    beshort        0554        68K BCS executable
  10256. #
  10257. # 88K
  10258. #
  10259. # Motorola/88Open BCS
  10260. #
  10261. 0    beshort        0555        88K BCS executable
  10262. #
  10263. # Motorola S-Records, from Gerd Truschinski <gt@freebsd.first.gmd.de>
  10264. 0   string      S0          Motorola S-Record; binary data in text format
  10265.  
  10266. # ATARI ST relocatable PRG
  10267. #
  10268. # from Oskar Schirmer <schirmer@scara.com> Feb 3, 2001
  10269. # (according to Roland Waldi, Oct 21, 1987)
  10270. # besides the magic 0x601a, the text segment size is checked to be
  10271. # not larger than 1 MB (which is a lot on ST).
  10272. # The additional 0x601b distinction I took from Doug Lee's magic.
  10273. 0    belong&0xFFFFFFF0    0x601A0000    Atari ST M68K contiguous executable
  10274. >2    belong            x        (txt=%ld,
  10275. >6    belong            x        dat=%ld,
  10276. >10    belong            x        bss=%ld,
  10277. >14    belong            x        sym=%ld)
  10278. 0    belong&0xFFFFFFF0    0x601B0000    Atari ST M68K non-contig executable
  10279. >2    belong            x        (txt=%ld,
  10280. >6    belong            x        dat=%ld,
  10281. >10    belong            x        bss=%ld,
  10282. >14    belong            x        sym=%ld)
  10283.  
  10284. # Atari ST/TT... program format (sent by Wolfram Kleff <kleff@cs.uni-bonn.de>)
  10285. 0       beshort         0x601A          Atari 68xxx executable,
  10286. >2      belong          x               text len %lu,
  10287. >6      belong          x               data len %lu,
  10288. >10     belong          x               BSS len %lu,
  10289. >14     belong          x               symboltab len %lu,
  10290. >18     belong          0
  10291. >22     belong          &0x01           fastload flag,
  10292. >22     belong          &0x02           may be loaded to alternate RAM,
  10293. >22     belong          &0x04           malloc may be from alternate RAM,
  10294. >22     belong          x               flags: 0x%lX,
  10295. >26     beshort         0               no relocation tab
  10296. >26     beshort         !0              + relocation tab
  10297. >30     string          SFX             [Self-Extracting LZH SFX archive]
  10298. >38     string          SFX             [Self-Extracting LZH SFX archive]
  10299. >44     string          ZIP!            [Self-Extracting ZIP SFX archive]
  10300.  
  10301. 0       beshort         0x0064          Atari 68xxx CPX file
  10302. >8      beshort         x               (version %04lx)
  10303.  
  10304. #------------------------------------------------------------------------------
  10305. # mozilla:  file(1) magic for Mozilla XUL fastload files 
  10306. # (XUL.mfasl and XPC.mfasl)
  10307. # URL:    http://www.mozilla.org/
  10308. # From:    Josh Triplett <josh@freedesktop.org>
  10309.  
  10310. 0    string    XPCOM\nMozFASL\r\n\x1A        Mozilla XUL fastload data
  10311.  
  10312. #------------------------------------------------------------------------------
  10313. # msdos:  file(1) magic for MS-DOS files
  10314. #
  10315.  
  10316. # .BAT files (Daniel Quinlan, quinlan@yggdrasil.com)
  10317. # updated by Joerg Jenderek at Oct 2008
  10318. 0    string    @            
  10319. >1    string/cB    \ echo\ off    DOS batch file text
  10320. !:mime    text/x-msdos-batch
  10321. >1    string/cB    echo\ off    DOS batch file text
  10322. !:mime    text/x-msdos-batch
  10323. >1    string/cB    rem\         DOS batch file text
  10324. !:mime    text/x-msdos-batch
  10325. >1    string/cB    set\         DOS batch file text
  10326. !:mime    text/x-msdos-batch
  10327.  
  10328.  
  10329. # OS/2 batch files are REXX. the second regex is a bit generic, oh well
  10330. # the matched commands seem to be common in REXX and uncommon elsewhere
  10331. 100    search/0xffff   rxfuncadd
  10332. >100    regex/c =^[\ \t]{0,10}call[\ \t]{1,10}rxfunc    OS/2 REXX batch file text
  10333. 100    search/0xffff   say
  10334. >100    regex/c =^[\ \t]{0,10}say\ ['"]            OS/2 REXX batch file text
  10335.  
  10336. 0    leshort        0x14c    MS Windows COFF Intel 80386 object file
  10337. #>4    ledate        x    stamp %s
  10338. 0    leshort        0x166    MS Windows COFF MIPS R4000 object file
  10339. #>4    ledate        x    stamp %s
  10340. 0    leshort        0x184    MS Windows COFF Alpha object file
  10341. #>4    ledate        x    stamp %s
  10342. 0    leshort        0x268    MS Windows COFF Motorola 68000 object file
  10343. #>4    ledate        x    stamp %s
  10344. 0    leshort        0x1f0    MS Windows COFF PowerPC object file
  10345. #>4    ledate        x    stamp %s
  10346. 0    leshort        0x290    MS Windows COFF PA-RISC object file
  10347. #>4    ledate        x    stamp %s
  10348.  
  10349. # XXX - according to Microsoft's spec, at an offset of 0x3c in a
  10350. # PE-format executable is the offset in the file of the PE header;
  10351. # unfortunately, that's a little-endian offset, and there's no way
  10352. # to specify an indirect offset with a specified byte order.
  10353. # So, for now, we assume the standard MS-DOS stub, which puts the
  10354. # PE header at 0x80 = 128.
  10355. #
  10356. # Required OS version and subsystem version were 4.0 on some NT 3.51
  10357. # executables built with Visual C++ 4.0, so it's not clear that
  10358. # they're interesting.    The user version was 0.0, but there's
  10359. # probably some linker directive to set it.  The linker version was
  10360. # 3.0, except for one ".exe" which had it as 4.20 (same damn linker!).
  10361. #
  10362. # many of the compressed formats were extraced from IDARC 1.23 source code
  10363. #
  10364. 0    string    MZ
  10365. !:mime    application/x-dosexec
  10366. >0x18  leshort <0x40 MS-DOS executable
  10367. >0 string MZ\0\0\0\0\0\0\0\0\0\0PE\0\0 \b, PE for MS Windows
  10368. >>&18    leshort&0x2000    >0    (DLL)
  10369. >>&88    leshort        0    (unknown subsystem)
  10370. >>&88    leshort        1    (native)
  10371. >>&88    leshort        2    (GUI)
  10372. >>&88    leshort        3    (console)
  10373. >>&88    leshort        7    (POSIX)
  10374. >>&0    leshort        0x0    unknown processor
  10375. >>&0    leshort        0x14c    Intel 80386
  10376. >>&0    leshort        0x166    MIPS R4000
  10377. >>&0    leshort        0x184    Alpha
  10378. >>&0    leshort        0x268    Motorola 68000
  10379. >>&0    leshort        0x1f0    PowerPC
  10380. >>&0    leshort        0x290    PA-RISC
  10381. >>&18    leshort&0x0100    >0    32-bit
  10382. >>&18    leshort&0x1000    >0    system file
  10383. >>&228    lelong        >0    \b, Mono/.Net assembly
  10384. >>&0xf4 search/0x140 \x0\x40\x1\x0
  10385. >>>(&0.l+(4)) string MSCF \b, WinHKI CAB self-extracting archive
  10386. >30        string    Copyright\ 1989-1990\ PKWARE\ Inc.    Self-extracting PKZIP archive
  10387. !:mime    application/zip
  10388. # Is next line correct? One might expect "Corp." not "Copr." If it is right, add a note to that effect.
  10389. >30        string    PKLITE\ Copr.    Self-extracting PKZIP archive
  10390. !:mime    application/zip
  10391.  
  10392. >0x18  leshort >0x3f
  10393. >>(0x3c.l) string PE\0\0 PE
  10394. >>>(0x3c.l+25) byte        1 \b32 executable
  10395. >>>(0x3c.l+25) byte        2 \b32+ executable
  10396. # hooray, there's a DOS extender using the PE format, with a valid PE
  10397. # executable inside (which just prints a message and exits if run in win)
  10398. >>>(0x3c.l+92)    leshort        <10
  10399. >>>>(8.s*16) string 32STUB for MS-DOS, 32rtm DOS extender
  10400. >>>>(8.s*16) string !32STUB for MS Windows
  10401. >>>>>(0x3c.l+22)    leshort&0x2000    >0    (DLL)
  10402. >>>>>(0x3c.l+92)    leshort        0    (unknown subsystem)
  10403. >>>>>(0x3c.l+92)    leshort        1    (native)
  10404. >>>>>(0x3c.l+92)    leshort        2    (GUI)
  10405. >>>>>(0x3c.l+92)    leshort        3    (console)
  10406. >>>>>(0x3c.l+92)    leshort        7    (POSIX)
  10407. >>>(0x3c.l+92)    leshort        10    (EFI application)
  10408. >>>(0x3c.l+92)    leshort        11    (EFI boot service driver)
  10409. >>>(0x3c.l+92)    leshort        12    (EFI runtime driver)
  10410. >>>(0x3c.l+92)    leshort        13    (XBOX)
  10411. >>>(0x3c.l+4)    leshort        0x0    unknown processor
  10412. >>>(0x3c.l+4)    leshort        0x14c    Intel 80386
  10413. >>>(0x3c.l+4)    leshort        0x166    MIPS R4000
  10414. >>>(0x3c.l+4)    leshort        0x184    Alpha
  10415. >>>(0x3c.l+4)    leshort        0x268    Motorola 68000
  10416. >>>(0x3c.l+4)    leshort        0x1f0    PowerPC
  10417. >>>(0x3c.l+4)    leshort        0x290    PA-RISC
  10418. >>>(0x3c.l+4)    leshort        0x200    Intel Itanium
  10419. >>>(0x3c.l+22)    leshort&0x0100    >0    32-bit
  10420. >>>(0x3c.l+22)    leshort&0x1000    >0    system file
  10421. >>>(0x3c.l+232) lelong    >0    Mono/.Net assembly
  10422.  
  10423. >>>>(0x3c.l+0xf8)    string        UPX0 \b, UPX compressed
  10424. >>>>(0x3c.l+0xf8)    search/0x140    PEC2 \b, PECompact2 compressed
  10425. >>>>(0x3c.l+0xf8)    search/0x140    UPX2
  10426. >>>>>(&0x10.l+(-4))    string        PK\3\4 \b, ZIP self-extracting archive (Info-Zip)
  10427. >>>>(0x3c.l+0xf8)    search/0x140    .idata
  10428. >>>>>(&0xe.l+(-4))    string        PK\3\4 \b, ZIP self-extracting archive (Info-Zip)
  10429. >>>>>(&0xe.l+(-4))    string        ZZ0 \b, ZZip self-extracting archive
  10430. >>>>>(&0xe.l+(-4))    string        ZZ1 \b, ZZip self-extracting archive
  10431. >>>>(0x3c.l+0xf8)    search/0x140    .rsrc
  10432. >>>>>(&0x0f.l+(-4))    string        a\\\4\5 \b, WinHKI self-extracting archive
  10433. >>>>>(&0x0f.l+(-4))    string        Rar! \b, RAR self-extracting archive
  10434. >>>>>(&0x0f.l+(-4))    search/0x3000    MSCF \b, InstallShield self-extracting archive
  10435. >>>>>(&0x0f.l+(-4))    search/32    Nullsoft \b, Nullsoft Installer self-extracting archive
  10436. >>>>(0x3c.l+0xf8)    search/0x140    .data
  10437. >>>>>(&0x0f.l)        string        WEXTRACT \b, MS CAB-Installer self-extracting archive
  10438. >>>>(0x3c.l+0xf8)    search/0x140    .petite\0 \b, Petite compressed
  10439. >>>>>(0x3c.l+0xf7)    byte        x
  10440. >>>>>>(&0x104.l+(-4))    string        =!sfx! \b, ACE self-extracting archive
  10441. >>>>(0x3c.l+0xf8)    search/0x140    .WISE \b, WISE installer self-extracting archive
  10442. >>>>(0x3c.l+0xf8)    search/0x140    .dz\0\0\0 \b, Dzip self-extracting archive
  10443. >>>>(0x3c.l+0xf8)    search/0x140    .reloc
  10444. >>>>>(&0xe.l+(-4))    search/0x180    PK\3\4 \b, ZIP self-extracting archive (WinZip)
  10445.  
  10446. >>>>&(0x3c.l+0xf8)    search/0x100    _winzip_ \b, ZIP self-extracting archive (WinZip)
  10447. >>>>&(0x3c.l+0xf8)    search/0x100    SharedD \b, Microsoft Installer self-extracting archive
  10448. >>>>0x30        string        Inno \b, InnoSetup self-extracting archive
  10449.  
  10450. >>(0x3c.l) string !PE\0\0 MS-DOS executable
  10451.  
  10452. >>(0x3c.l)        string        NE \b, NE
  10453. >>>(0x3c.l+0x36)    byte        0 (unknown OS)
  10454. >>>(0x3c.l+0x36)    byte        1 for OS/2 1.x
  10455. >>>(0x3c.l+0x36)    byte        2 for MS Windows 3.x
  10456. >>>(0x3c.l+0x36)    byte        3 for MS-DOS
  10457. >>>(0x3c.l+0x36)    byte        >3 (unknown OS)
  10458. >>>(0x3c.l+0x36)    byte        0x81 for MS-DOS, Phar Lap DOS extender
  10459. >>>(0x3c.l+0x0c)    leshort&0x8003    0x8002 (DLL)
  10460. >>>(0x3c.l+0x0c)    leshort&0x8003    0x8001 (driver)
  10461. >>>&(&0x24.s-1)        string        ARJSFX \b, ARJ self-extracting archive
  10462. >>>(0x3c.l+0x70)    search/0x80    WinZip(R)\ Self-Extractor \b, ZIP self-extracting archive (WinZip)
  10463.  
  10464. >>(0x3c.l)        string        LX\0\0 \b, LX
  10465. >>>(0x3c.l+0x0a)    leshort        <1 (unknown OS)
  10466. >>>(0x3c.l+0x0a)    leshort        1 for OS/2
  10467. >>>(0x3c.l+0x0a)    leshort        2 for MS Windows
  10468. >>>(0x3c.l+0x0a)    leshort        3 for DOS
  10469. >>>(0x3c.l+0x0a)    leshort        >3 (unknown OS)
  10470. >>>(0x3c.l+0x10)    lelong&0x28000    =0x8000 (DLL)
  10471. >>>(0x3c.l+0x10)    lelong&0x20000    >0 (device driver)
  10472. >>>(0x3c.l+0x10)    lelong&0x300    0x300 (GUI)
  10473. >>>(0x3c.l+0x10)    lelong&0x28300    <0x300 (console)
  10474. >>>(0x3c.l+0x08)    leshort        1 i80286
  10475. >>>(0x3c.l+0x08)    leshort        2 i80386
  10476. >>>(0x3c.l+0x08)    leshort        3 i80486
  10477. >>>(8.s*16)        string        emx \b, emx
  10478. >>>>&1            string        x %s
  10479. >>>&(&0x54.l-3)        string        arjsfx \b, ARJ self-extracting archive
  10480.  
  10481. # MS Windows system file, supposedly a collection of LE executables
  10482. >>(0x3c.l)        string        W3 \b, W3 for MS Windows
  10483.  
  10484. >>(0x3c.l)        string        LE\0\0 \b, LE executable
  10485. >>>(0x3c.l+0x0a)    leshort        1
  10486. # some DOS extenders use LE files with OS/2 header
  10487. >>>>0x240        search/0x100    DOS/4G for MS-DOS, DOS4GW DOS extender
  10488. >>>>0x240        search/0x200    WATCOM\ C/C++ for MS-DOS, DOS4GW DOS extender
  10489. >>>>0x440        search/0x100    CauseWay\ DOS\ Extender for MS-DOS, CauseWay DOS extender
  10490. >>>>0x40        search/0x40    PMODE/W for MS-DOS, PMODE/W DOS extender
  10491. >>>>0x40        search/0x40    STUB/32A for MS-DOS, DOS/32A DOS extender (stub)
  10492. >>>>0x40        search/0x80    STUB/32C for MS-DOS, DOS/32A DOS extender (configurable stub)
  10493. >>>>0x40        search/0x80    DOS/32A for MS-DOS, DOS/32A DOS extender (embedded)
  10494. # this is a wild guess; hopefully it is a specific signature
  10495. >>>>&0x24        lelong        <0x50
  10496. >>>>>(&0x4c.l)        string        \xfc\xb8WATCOM
  10497. >>>>>>&0        search/8    3\xdbf\xb9 \b, 32Lite compressed
  10498. # another wild guess: if real OS/2 LE executables exist, they probably have higher start EIP
  10499. #>>>>(0x3c.l+0x1c)    lelong        >0x10000 for OS/2
  10500. # fails with DOS-Extenders.
  10501. >>>(0x3c.l+0x0a)    leshort        2 for MS Windows
  10502. >>>(0x3c.l+0x0a)    leshort        3 for DOS
  10503. >>>(0x3c.l+0x0a)    leshort        4 for MS Windows (VxD)
  10504. >>>(&0x7c.l+0x26)    string        UPX \b, UPX compressed
  10505. >>>&(&0x54.l-3)        string        UNACE \b, ACE self-extracting archive
  10506.  
  10507. # looks like ASCII, probably some embedded copyright message.
  10508. # and definitely not NE/LE/LX/PE
  10509. >>0x3c        lelong    >0x20000000
  10510. >>>(4.s*512)    leshort !0x014c \b, MZ for MS-DOS
  10511. # header data too small for extended executable
  10512. >2        long    !0
  10513. >>0x18        leshort <0x40
  10514. >>>(4.s*512)    leshort !0x014c
  10515.  
  10516. >>>>&(2.s-514)    string    !LE
  10517. >>>>>&-2    string    !BW \b, MZ for MS-DOS
  10518. >>>>&(2.s-514)    string    LE \b, LE
  10519. >>>>>0x240    search/0x100    DOS/4G for MS-DOS, DOS4GW DOS extender
  10520. # educated guess since indirection is still not capable enough for complex offset
  10521. # calculations (next embedded executable would be at &(&2*512+&0-2)
  10522. # I suspect there are only LE executables in these multi-exe files
  10523. >>>>&(2.s-514)    string    BW
  10524. >>>>>0x240    search/0x100    DOS/4G ,\b LE for MS-DOS, DOS4GW DOS extender (embedded)
  10525. >>>>>0x240    search/0x100    !DOS/4G ,\b BW collection for MS-DOS
  10526.  
  10527. # This sequence skips to the first COFF segment, usually .text
  10528. >(4.s*512)    leshort        0x014c \b, COFF
  10529. >>(8.s*16)    string        go32stub for MS-DOS, DJGPP go32 DOS extender
  10530. >>(8.s*16)    string        emx
  10531. >>>&1        string        x for DOS, Win or OS/2, emx %s
  10532. >>&(&0x42.l-3)    byte        x 
  10533. >>>&0x26    string        UPX \b, UPX compressed
  10534. # and yet another guess: small .text, and after large .data is unusal, could be 32lite
  10535. >>&0x2c        search/0xa0    .text
  10536. >>>&0x0b    lelong        <0x2000
  10537. >>>>&0        lelong        >0x6000 \b, 32lite compressed
  10538.  
  10539. >(8.s*16) string $WdX \b, WDos/X DOS extender
  10540.  
  10541. # .EXE formats (Greg Roelofs, newt@uchicago.edu)
  10542. #
  10543. >0x35    string    \x8e\xc0\xb9\x08\x00\xf3\xa5\x4a\x75\xeb\x8e\xc3\x8e\xd8\x33\xff\xbe\x30\x00\x05 \b, aPack compressed
  10544. >0xe7    string    LH/2\ Self-Extract \b, %s
  10545. >0x1c    string    diet \b, diet compressed
  10546. >0x1c    string    LZ09 \b, LZEXE v0.90 compressed
  10547. >0x1c    string    LZ91 \b, LZEXE v0.91 compressed
  10548. >0x1c    string    tz \b, TinyProg compressed
  10549. >0x1e    string    PKLITE \b, %s compressed
  10550. >0x64    string    W\ Collis\0\0 \b, Compack compressed
  10551. >0x24    string    LHa's\ SFX \b, LHa self-extracting archive
  10552. !:mime    application/x-lha
  10553. >0x24    string    LHA's\ SFX \b, LHa self-extracting archive
  10554. !:mime    application/x-lha
  10555. >0x24    string    \ $ARX \b, ARX self-extracting archive
  10556. >0x24    string    \ $LHarc \b, LHarc self-extracting archive
  10557. >0x20    string    SFX\ by\ LARC \b, LARC self-extracting archive
  10558. >1638    string    -lh5- \b, LHa self-extracting archive v2.13S
  10559. >0x17888 string Rar! \b, RAR self-extracting archive
  10560. >0x40    string aPKG \b, aPackage self-extracting archive
  10561.  
  10562. >32     string AIN
  10563. >>35     string 2        \b, AIN 2.x compressed
  10564. >>35     string <2        \b, AIN 1.x compressed
  10565. >>35     string >2        \b, AIN 1.x compressed
  10566. >28     string UC2X        \b, UCEXE compressed
  10567. >28     string WWP\          \b, WWPACK compressed
  10568.  
  10569. # skip to the end of the exe
  10570. >(4.s*512)    long    x 
  10571. >>&(2.s-517)    byte    x 
  10572. >>>&0    string        PK\3\4 \b, ZIP self-extracting archive
  10573. >>>&0    string        Rar! \b, RAR self-extracting archive
  10574. >>>&0    string        =!\x11 \b, AIN 2.x self-extracting archive
  10575. >>>&0    string        =!\x12 \b, AIN 2.x self-extracting archive
  10576. >>>&0    string        =!\x17 \b, AIN 1.x self-extracting archive
  10577. >>>&0    string        =!\x18 \b, AIN 1.x self-extracting archive
  10578. >>>&7    search/400    **ACE** \b, ACE self-extracting archive
  10579. >>>&0    search/0x480    UC2SFX\ Header \b, UC2 self-extracting archive
  10580.  
  10581. >0x1c    string        RJSX \b, ARJ self-extracting archive
  10582. # winarj stores a message in the stub instead of the sig in the MZ header
  10583. >0x20    search/0xe0    aRJsfX \b, ARJ self-extracting archive
  10584.  
  10585. # a few unknown ZIP sfxes, no idea if they are needed or if they are
  10586. # already captured by the generic patterns above
  10587. >0x7a        string        Windows\ self-extracting\ ZIP    \b, ZIP self-extracting archive
  10588. >(8.s*16)    search/0x20    PKSFX \b, ZIP self-extracting archive (PKZIP)
  10589. # TODO: how to add this? >FileSize-34 string Windows\ Self-Installing\ Executable \b, ZIP self-extracting archive
  10590. #
  10591.  
  10592. # TELVOX Teleinformatica CODEC self-extractor for OS/2:
  10593. >49801    string    \x79\xff\x80\xff\x76\xff    \b, CODEC archive v3.21
  10594. >>49824 leshort        =1            \b, 1 file
  10595. >>49824 leshort        >1            \b, %u files
  10596.  
  10597. # .COM formats (Daniel Quinlan, quinlan@yggdrasil.com)
  10598. # Uncommenting only the first two lines will cover about 2/3 of COM files,
  10599. # but it isn't feasible to match all COM files since there must be at least
  10600. # two dozen different one-byte "magics".
  10601. # test too generic ?
  10602. 0    byte        0xe9        DOS executable (COM)
  10603. >0x1FE leshort        0xAA55        \b, boot code
  10604. >6    string        SFX\ of\ LHarc    (%s)
  10605. 0    belong    0xffffffff        DOS executable (device driver)
  10606. #CMD640X2.SYS
  10607. >10    string    >\x23            
  10608. >>10    string    !\x2e            
  10609. >>>17    string    <\x5B            
  10610. >>>>10    string    x            \b, name: %.8s
  10611. #UDMA.SYS KEYB.SYS CMD640X2.SYS
  10612. >10    string    <\x41            
  10613. >>12    string    >\x40            
  10614. >>>10    string    !$            
  10615. >>>>12    string    x            \b, name: %.8s
  10616. #BTCDROM.SYS ASPICD.SYS
  10617. >22    string    >\x40            
  10618. >>22    string    <\x5B            
  10619. >>>23    string    <\x5B            
  10620. >>>>22    string    x            \b, name: %.8s
  10621. #ATAPICD.SYS
  10622. >76    string    \0            
  10623. >>77    string    >\x40            
  10624. >>>77    string    <\x5B            
  10625. >>>>77    string    x            \b, name: %.8s
  10626. # test too generic ?
  10627. 0    byte        0x8c        DOS executable (COM)
  10628. # updated by Joerg Jenderek at Oct 2008
  10629. 0    ulelong        0xffff10eb    DR-DOS executable (COM)
  10630. # byte 0xeb conflicts with "sequent" magic leshort 0xn2eb
  10631. 0    ubeshort&0xeb8d    >0xeb00        
  10632. # DR-DOS STACKER.COM SCREATE.SYS missed
  10633. >0    byte        0xeb        DOS executable (COM)
  10634. >>0x1FE leshort        0xAA55        \b, boot code
  10635. >>85    string        UPX        \b, UPX compressed
  10636. >>4    string        \ $ARX        \b, ARX self-extracting archive
  10637. >>4    string        \ $LHarc    \b, LHarc self-extracting archive
  10638. >>0x20e string        SFX\ by\ LARC    \b, LARC self-extracting archive
  10639. # updated by Joerg Jenderek at Oct 2008
  10640. #0    byte        0xb8        COM executable
  10641. 0    uleshort&0x80ff    0x00b8        
  10642. # modified by Joerg Jenderek
  10643. >1    lelong        !0x21cd4cff    COM executable for DOS
  10644. # http://syslinux.zytor.com/comboot.php
  10645. # (32-bit COMBOOT) programs *.C32 contain 32-bit code and run in flat-memory 32-bit protected mode
  10646. # start with assembler instructions mov eax,21cd4cffh
  10647. 0    uleshort&0xc0ff    0xc0b8        
  10648. >1    lelong        0x21cd4cff    COM executable (32-bit COMBOOT)
  10649. 0    string    \x81\xfc        
  10650. >4    string    \x77\x02\xcd\x20\xb9    
  10651. >>36    string    UPX!            FREE-DOS executable (COM), UPX compressed
  10652. 252    string Must\ have\ DOS\ version DR-DOS executable (COM)
  10653. # added by Joerg Jenderek at Oct 2008
  10654. # GRR search is not working
  10655. #34    search/2    UPX!        FREE-DOS executable (COM), UPX compressed
  10656. 34    string    UPX!            FREE-DOS executable (COM), UPX compressed
  10657. 35    string    UPX!            FREE-DOS executable (COM), UPX compressed
  10658. # GRR search is not working
  10659. #2    search/28    \xcd\x21    COM executable for MS-DOS
  10660. #WHICHFAT.cOM
  10661. 2    string    \xcd\x21        COM executable for DOS
  10662. #DELTREE.cOM DELTREE2.cOM
  10663. 4    string    \xcd\x21        COM executable for DOS
  10664. #IFMEMDSK.cOM ASSIGN.cOM COMP.cOM
  10665. 5    string    \xcd\x21        COM executable for DOS
  10666. #DELTMP.COm HASFAT32.cOM
  10667. 7    string    \xcd\x21        
  10668. >0    byte    !0xb8            COM executable for DOS
  10669. #COMP.cOM MORE.COm
  10670. 10    string    \xcd\x21        
  10671. >5    string    !\xcd\x21        COM executable for DOS
  10672. #comecho.com
  10673. 13    string    \xcd\x21        COM executable for DOS
  10674. #HELP.COm EDIT.coM
  10675. 18    string    \xcd\x21        COM executable for MS-DOS
  10676. #NWRPLTRM.COm
  10677. 23    string    \xcd\x21        COM executable for MS-DOS
  10678. #LOADFIX.cOm LOADFIX.cOm
  10679. 30    string    \xcd\x21        COM executable for MS-DOS
  10680. #syslinux.com 3.11
  10681. 70    string    \xcd\x21        COM executable for DOS
  10682. # many compressed/converted COMs start with a copy loop instead of a jump
  10683. 0x6    search/0xa    \xfc\x57\xf3\xa5\xc3    COM executable for MS-DOS
  10684. 0x6    search/0xa    \xfc\x57\xf3\xa4\xc3    COM executable for DOS
  10685. >0x18    search/0x10    \x50\xa4\xff\xd5\x73    \b, aPack compressed
  10686. 0x3c    string        W\ Collis\0\0        COM executable for MS-DOS, Compack compressed
  10687. # FIXME: missing diet .com compression
  10688.  
  10689. # miscellaneous formats
  10690. 0    string        LZ        MS-DOS executable (built-in)
  10691. #0    byte        0xf0        MS-DOS program library data
  10692. #
  10693.  
  10694. # AAF files:
  10695. # <stuartc@rd.bbc.co.uk> Stuart Cunningham
  10696. 0    string    \320\317\021\340\241\261\032\341AAFB\015\000OM\006\016\053\064\001\001\001\377            AAF legacy file using MS Structured Storage
  10697. >30    byte    9        (512B sectors)
  10698. >30    byte    12        (4kB sectors)
  10699. 0    string    \320\317\021\340\241\261\032\341\001\002\001\015\000\002\000\000\006\016\053\064\003\002\001\001            AAF file using MS Structured Storage
  10700. >30    byte    9        (512B sectors)
  10701. >30    byte    12        (4kB sectors)
  10702.  
  10703. # Popular applications
  10704. 2080    string    Microsoft\ Word\ 6.0\ Document    %s
  10705. !:mime    application/msword
  10706. 2080    string    Documento\ Microsoft\ Word\ 6 Spanish Microsoft Word 6 document data
  10707. !:mime    application/msword
  10708. # Pawel Wiecek <coven@i17linuxb.ists.pwr.wroc.pl> (for polish Word)
  10709. 2112    string    MSWordDoc            Microsoft Word document data
  10710. !:mime    application/msword
  10711. #
  10712. 0    belong    0x31be0000            Microsoft Word Document
  10713. !:mime    application/msword
  10714. #
  10715. 0    string    PO^Q`                Microsoft Word 6.0 Document
  10716. !:mime    application/msword
  10717. #
  10718. 0    string    \376\067\0\043            Microsoft Office Document
  10719. !:mime    application/msword
  10720. 0    string    \333\245-\0\0\0            Microsoft Office Document
  10721. !:mime    application/msword
  10722. 512    string        \354\245\301        Microsoft Word Document
  10723. !:mime    application/msword
  10724. #
  10725. 2080    string    Microsoft\ Excel\ 5.0\ Worksheet    %s
  10726. !:mime    application/vnd.ms-excel
  10727.  
  10728. 2080    string    Foglio\ di\ lavoro\ Microsoft\ Exce    %s
  10729. !:mime    application/vnd.ms-excel
  10730. #
  10731. # Pawel Wiecek <coven@i17linuxb.ists.pwr.wroc.pl> (for polish Excel)
  10732. 2114    string    Biff5        Microsoft Excel 5.0 Worksheet
  10733. !:mime    application/vnd.ms-excel
  10734. # Italian MS-Excel
  10735. 2121    string    Biff5        Microsoft Excel 5.0 Worksheet
  10736. !:mime    application/vnd.ms-excel
  10737. 0    string    \x09\x04\x06\x00\x00\x00\x10\x00    Microsoft Excel Worksheet
  10738. !:mime    application/vnd.ms-excel
  10739. #
  10740. 0    belong    0x00001a00    Lotus 1-2-3
  10741. !:mime    application/x-123
  10742. >4    belong    0x00100400    wk3 document data
  10743. >4    belong    0x02100400    wk4 document data
  10744. >4    belong    0x07800100    fm3 or fmb document data
  10745. >4    belong    0x07800000    fm3 or fmb document data
  10746. #
  10747. 0    belong    0x00000200    Lotus 1-2-3
  10748. !:mime    application/x-123
  10749. >4    belong    0x06040600    wk1 document data
  10750. >4    belong    0x06800200    fmt document data
  10751. 0    string        WordPro\0    Lotus WordPro
  10752. !:mime    application/vnd.lotus-wordpro
  10753. 0    string        WordPro\r\373    Lotus WordPro
  10754. !:mime    application/vnd.lotus-wordpro
  10755.  
  10756.  
  10757. # Summary: Script used by InstallScield to uninstall applications
  10758. # Extension: .isu
  10759. # Submitted by: unknown
  10760. # Modified by (1): Abel Cheung <abelcheung@gmail.com> (replace useless entry)
  10761. 0        string        \x71\xa8\x00\x00\x01\x02
  10762. >12        string        Stirling\ Technologies,        InstallShield Uninstall Script
  10763.  
  10764. # Winamp .avs
  10765. #0    string    Nullsoft\ AVS\ Preset\ \060\056\061\032 A plug in for Winamp ms-windows Freeware media player
  10766. 0    string    Nullsoft\ AVS\ Preset\     Winamp plug in
  10767.  
  10768. # Windows Metafont .WMF
  10769. 0    string    \327\315\306\232    ms-windows metafont .wmf
  10770. 0    string    \002\000\011\000    ms-windows metafont .wmf
  10771. 0    string    \001\000\011\000    ms-windows metafont .wmf
  10772.  
  10773. #tz3 files whatever that is (MS Works files)
  10774. 0    string    \003\001\001\004\070\001\000\000    tz3 ms-works file
  10775. 0    string    \003\002\001\004\070\001\000\000    tz3 ms-works file
  10776. 0    string    \003\003\001\004\070\001\000\000    tz3 ms-works file
  10777.  
  10778. # PGP sig files .sig
  10779. #0 string \211\000\077\003\005\000\063\237\127 065 to  \027\266\151\064\005\045\101\233\021\002 PGP sig
  10780. 0 string \211\000\077\003\005\000\063\237\127\065\027\266\151\064\005\045\101\233\021\002 PGP sig
  10781. 0 string \211\000\077\003\005\000\063\237\127\066\027\266\151\064\005\045\101\233\021\002 PGP sig
  10782. 0 string \211\000\077\003\005\000\063\237\127\067\027\266\151\064\005\045\101\233\021\002 PGP sig
  10783. 0 string \211\000\077\003\005\000\063\237\127\070\027\266\151\064\005\045\101\233\021\002 PGP sig
  10784. 0 string \211\000\077\003\005\000\063\237\127\071\027\266\151\064\005\045\101\233\021\002 PGP sig
  10785. 0 string \211\000\225\003\005\000\062\122\207\304\100\345\042 PGP sig
  10786.  
  10787. # windows zips files .dmf
  10788. 0    string    MDIF\032\000\010\000\000\000\372\046\100\175\001\000\001\036\001\000 MS Windows special zipped file
  10789.  
  10790.  
  10791. #ico files
  10792. 0    string    \102\101\050\000\000\000\056\000\000\000\000\000\000\000    Icon for MS Windows
  10793.  
  10794. # Windows icons (Ian Springer <ips@fpk.hp.com>)
  10795. 0    string    \000\000\001\000    MS Windows icon resource
  10796. !:mime    image/x-ico
  10797. >4    byte    1            - 1 icon
  10798. >4    byte    >1            - %d icons
  10799. >>6    byte    >0            \b, %dx
  10800. >>>7    byte    >0            \b%d
  10801. >>8    byte    0            \b, 256-colors
  10802. >>8    byte    >0            \b, %d-colors
  10803.  
  10804.  
  10805. # .chr files
  10806. 0    string    PK\010\010BGI    Borland font 
  10807. >4    string    >\0    %s
  10808. # then there is a copyright notice
  10809.  
  10810.  
  10811. # .bgi files
  10812. 0    string    pk\010\010BGI    Borland device 
  10813. >4    string    >\0    %s
  10814. # then there is a copyright notice
  10815.  
  10816.  
  10817. # Windows Recycle Bin record file (named INFO2)
  10818. # By Abel Cheung (abelcheung AT gmail dot com)
  10819. # Version 4 always has 280 bytes (0x118) per record, version 5 has 800 bytes
  10820. # Since Vista uses another structure, INFO2 structure probably won't change
  10821. # anymore. Detailed analysis in:
  10822. # http://www.cybersecurityinstitute.biz/downloads/INFO2.pdf
  10823. 0    lelong        0x00000004
  10824. >12    lelong        0x00000118    Windows Recycle Bin INFO2 file (Win98 or below)
  10825.  
  10826. 0    lelong        0x00000005
  10827. >12    lelong        0x00000320    Windows Recycle Bin INFO2 file (Win2k - WinXP)
  10828.  
  10829.  
  10830. ##### put in Either Magic/font or Magic/news
  10831. # Acroread or something     files wrongly identified as G3     .pfm
  10832. # these have the form \000 \001 any? \002 \000 \000
  10833. # or \000 \001 any? \022 \000 \000
  10834. 0    belong&0xffff00ff    0x00010012    PFM data
  10835. >4    string            \000\000
  10836. >6    string            >\060        - %s
  10837.  
  10838. 0    belong&0xffff00ff    0x00010002    PFM data
  10839. >4    string            \000\000
  10840. >6    string            >\060        - %s
  10841. #0    string    \000\001 pfm?
  10842. #>3    string    \022\000\000Copyright\    yes
  10843. #>3    string    \002\000\000Copyright\    yes
  10844. #>3    string    >\0    oops, not a font file. Cancel that.
  10845. #it clashes with ttf files so put it lower down.
  10846.  
  10847. # From Doug Lee via a FreeBSD pr
  10848. 9    string        GERBILDOC    First Choice document
  10849. 9    string        GERBILDB    First Choice database
  10850. 9    string        GERBILCLIP    First Choice database
  10851. 0    string        GERBIL        First Choice device file
  10852. 9    string        RABBITGRAPH    RabbitGraph file
  10853. 0    string        DCU1        Borland Delphi .DCU file
  10854. 0    string        =!<spell>    MKS Spell hash list (old format)
  10855. 0    string        =!<spell2>    MKS Spell hash list
  10856. # Too simple - MPi
  10857. #0    string        AH        Halo(TM) bitmapped font file
  10858. 0    lelong        0x08086b70    TurboC BGI file
  10859. 0    lelong        0x08084b50    TurboC Font file
  10860.  
  10861. # WARNING: below line conflicts with Infocom game data Z-machine 3
  10862. 0    byte        0x03        DBase 3 data file
  10863. >0x04    lelong        0        (no records)
  10864. >0x04    lelong        >0        (%ld records)
  10865. 0    byte        0x83        DBase 3 data file with memo(s)
  10866. >0x04    lelong        0        (no records)
  10867. >0x04    lelong        >0        (%ld records)
  10868. 0    leshort        0x0006        DBase 3 index file
  10869. 0    string        PMCC        Windows 3.x .GRP file
  10870. 1    string        RDC-meg        MegaDots 
  10871. >8    byte        >0x2F        version %c
  10872. >9    byte        >0x2F        \b.%c file
  10873. 0    lelong        0x4C
  10874. >4    lelong        0x00021401    Windows shortcut file
  10875.  
  10876. # DOS EPS Binary File Header
  10877. # From: Ed Sznyter <ews@Black.Market.NET>
  10878. 0    belong        0xC5D0D3C6    DOS EPS Binary File
  10879. >4    long        >0        Postscript starts at byte %d
  10880. >>8    long        >0        length %d
  10881. >>>12    long        >0        Metafile starts at byte %d
  10882. >>>>16    long        >0        length %d
  10883. >>>20    long        >0        TIFF starts at byte %d
  10884. >>>>24    long        >0        length %d
  10885.  
  10886. # TNEF magic From "Joomy" <joomy@se-ed.net> 
  10887. # Microsoft Outlook's Transport Neutral Encapsulation Format (TNEF)
  10888. 0    leshort        0x223e9f78    TNEF
  10889. !:mime    application/vnd.ms-tnef
  10890.  
  10891. # HtmlHelp files (.chm)
  10892. 0    string    ITSF\003\000\000\000\x60\000\000\000\001\000\000\000    MS Windows HtmlHelp Data
  10893.  
  10894. # GFA-BASIC (Wolfram Kleff)
  10895. 2    string        GFA-BASIC3    GFA-BASIC 3 data
  10896.  
  10897. #------------------------------------------------------------------------------
  10898. # From Stuart Caie <kyzer@4u.net> (developer of cabextract)
  10899. # Microsoft Cabinet files
  10900. 0    string        MSCF\0\0\0\0    Microsoft Cabinet archive data
  10901. !:mime application/vnd.ms-cab-compressed
  10902. >8    lelong        x        \b, %u bytes
  10903. >28    leshort        1        \b, 1 file
  10904. >28    leshort        >1        \b, %u files
  10905.  
  10906. # InstallShield Cabinet files
  10907. 0    string        ISc(        InstallShield Cabinet archive data
  10908. >5    byte&0xf0    =0x60        version 6,
  10909. >5    byte&0xf0    !0x60        version 4/5,
  10910. >(12.l+40)    lelong    x        %u files
  10911.  
  10912. # Windows CE package files
  10913. 0    string        MSCE\0\0\0\0    Microsoft WinCE install header
  10914. >20    lelong        0        \b, architecture-independent
  10915. >20    lelong        103        \b, Hitachi SH3
  10916. >20    lelong        104        \b, Hitachi SH4
  10917. >20    lelong        0xA11        \b, StrongARM
  10918. >20    lelong        4000        \b, MIPS R4000
  10919. >20    lelong        10003        \b, Hitachi SH3
  10920. >20    lelong        10004        \b, Hitachi SH3E
  10921. >20    lelong        10005        \b, Hitachi SH4
  10922. >20    lelong        70001        \b, ARM 7TDMI
  10923. >52    leshort        1        \b, 1 file
  10924. >52    leshort        >1        \b, %u files
  10925. >56    leshort        1        \b, 1 registry entry
  10926. >56    leshort        >1        \b, %u registry entries
  10927.  
  10928.  
  10929. # Windows Enhanced Metafile (EMF)
  10930. # See msdn.microsoft.com/archive/en-us/dnargdi/html/msdn_enhmeta.asp 
  10931. # for further information.
  10932. 0    ulelong 1
  10933. >40    string    \ EMF        Windows Enhanced Metafile (EMF) image data
  10934. >>44    ulelong x        version 0x%x
  10935.  
  10936. # From: Alex Beregszaszi <alex@fsn.hu>
  10937. 0    string    COWD        VMWare3
  10938. >4    byte    3        disk image
  10939. >>32    lelong    x        (%d/
  10940. >>36    lelong    x        \b%d/
  10941. >>40    lelong    x        \b%d)
  10942. >4    byte    2        undoable disk image
  10943. >>32    string    >\0        (%s)
  10944.  
  10945. 0    string    VMDK         VMware4 disk image
  10946. 0    string    KDMV         VMware4 disk image
  10947.  
  10948. #--------------------------------------------------------------------
  10949. # Qemu Emulator Images
  10950. # Lines written by Friedrich Schwittay (f.schwittay@yousable.de)
  10951. # Made by reading sources and doing trial and error on existing
  10952. # qcow files
  10953. 0    string    QFI    Qemu Image, Format: Qcow
  10954.  
  10955. # Uncomment the following line to display Magic (only used for debugging
  10956. # this magic number)
  10957. #>0    string    x    , Magic: %s
  10958.  
  10959. # There are currently 2 Versions: "1" and "2"
  10960. # I do not use Version 2 and therefor branch here
  10961. # but can assure: it works (tested on both versions)
  10962. # Also my Qemu 0.9.0 which uses this Version 2 refuses
  10963. # to start in its bios
  10964. >0x04    belong    2    , Version: 2
  10965. >0x04    belong    1    , Version: 1
  10966.  
  10967. # Using the existence of the Backing File Offset to Branch or not
  10968. # to read Backing File Information
  10969. >>0xc     belong     >0     , Backing File( Offset: %lu
  10970. >>>(0xc.L)     string >\0    , Path: %s
  10971.  
  10972. # Didn't get the trick here how qemu stores the "Size" at this Position
  10973. # There is actually something stored but nothing makes sense
  10974. # The header in the sources talks about it
  10975. #>>>16     lelong     x     , Size: %lu
  10976.  
  10977. # Modification time of the Backing File
  10978. # Really useful if you want to know if your backing
  10979. # file is still usable together with this image
  10980. >>>20     bedate x    , Mtime: %s )
  10981.  
  10982. # Don't know how to calculate in Magicfiles
  10983. # Also: this Information is not reliably
  10984. #    stored in image-files
  10985. >>24     lelong     x     , Disk Size could be: %d * 256 bytes
  10986.  
  10987. 0    string    QEVM        QEMU's suspend to disk image
  10988.  
  10989. 0    string    Bochs\ Virtual\ HD\ Image    Bochs disk image,
  10990. >32    string    x                type %s,
  10991. >48    string    x                subtype %s
  10992.  
  10993. 0    lelong    0x02468ace            Bochs Sparse disk image
  10994.  
  10995. # from http://filext.com by Derek M Jones <derek@knosof.co.uk>
  10996. # False positive with PPT (also currently this string is too long)
  10997. #0    string    \xD0\xCF\x11\xE0\xA1\xB1\x1A\xE1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3E\x00\x03\x00\xFE\xFF\x09\x00\x06    Microsoft Installer
  10998. 0    string    \320\317\021\340\241\261\032\341    Microsoft Office Document
  10999. #>48    byte    0x1B                    Excel Document
  11000. #!:mime application/vnd.ms-excel
  11001. >546    string    bjbj            Microsoft Word Document
  11002. !:mime    application/msword
  11003. >546    string    jbjb            Microsoft Word Document
  11004. !:mime    application/msword
  11005.  
  11006. 0    string    \224\246\056        Microsoft Word Document
  11007. !:mime    application/msword
  11008.  
  11009. 512    string    R\0o\0o\0t\0\ \0E\0n\0t\0r\0y    Microsoft Word Document
  11010. !:mime    application/msword
  11011.  
  11012. # From: "Nelson A. de Oliveira" <naoliv@gmail.com>
  11013. # Magic type for Dell's BIOS .hdr files
  11014. # Dell's .hdr
  11015. 0    string $RBU
  11016. >23    string Dell            %s system BIOS
  11017. >48    string x            version %.3s
  11018.  
  11019. # Type: Microsoft DirectDraw Surface
  11020. # URL:    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directx9_c/directx/graphics/reference/DDSFileReference/ddsfileformat.asp
  11021. # From: Morten Hustveit <morten@debian.org>
  11022. 0    string    DDS\040\174\000\000\000 Microsoft DirectDraw Surface (DDS),
  11023. >16    lelong    >0            %hd x
  11024. >12    lelong    >0            %hd,
  11025. >84    string    x            %.4s
  11026.  
  11027. # Type: Microsoft Document Imaging Format (.mdi)
  11028. # URL:    http://en.wikipedia.org/wiki/Microsoft_Document_Imaging_Format
  11029. # From: Daniele Sempione <scrows@oziosi.org>
  11030. 0    short    0x5045            Microsoft Document Imaging Format
  11031.  
  11032. # MS eBook format (.lit)
  11033. 0    string    ITOLITLS        Microsoft Reader eBook Data
  11034. >8    lelong    x            \b, version %u
  11035. !:mime                    application/x-ms-reader
  11036.  
  11037. #------------------------------------------------------------------------------
  11038. # msvc:  file(1) magic for msvc
  11039. # "H. Nanosecond" <aldomel@ix.netcom.com>
  11040. # Microsoft visual C
  11041. # I have version 1.0
  11042.  
  11043. # .aps
  11044. 0    string    HWB\000\377\001\000\000\000    Microsoft Visual C .APS file
  11045.  
  11046. # .ide
  11047. #too long 0    string    \102\157\162\154\141\156\144\040\103\053\053\040\120\162\157\152\145\143\164\040\106\151\154\145\012\000\032\000\002\000\262\000\272\276\372\316    MSVC .ide
  11048. 0    string    \102\157\162\154\141\156\144\040\103\053\053\040\120\162\157    MSVC .ide
  11049.  
  11050. # .res
  11051. 0    string    \000\000\000\000\040\000\000\000\377    MSVC .res
  11052. 0    string    \377\003\000\377\001\000\020\020\350    MSVC .res
  11053. 0    string    \377\003\000\377\001\000\060\020\350    MSVC .res
  11054.  
  11055. #.lib
  11056. 0    string    \360\015\000\000    Microsoft Visual C library
  11057. 0    string    \360\075\000\000    Microsoft Visual C library
  11058. 0    string    \360\175\000\000    Microsoft Visual C library
  11059.  
  11060. #.pch
  11061. 0    string    DTJPCH0\000\022\103\006\200    Microsoft Visual C .pch
  11062.  
  11063. # .pdb
  11064. # too long 0    string    Microsoft\ C/C++\ program\ database\ 
  11065. 0    string    Microsoft\ C/C++\     MSVC program database
  11066. >18    string    program\ database\     
  11067. >33    string    >\0    ver %s
  11068.  
  11069. #.sbr
  11070. 0    string    \000\002\000\007\000    MSVC .sbr
  11071. >5    string     >\0    %s
  11072.  
  11073. #.bsc
  11074. 0    string    \002\000\002\001    MSVC .bsc
  11075.  
  11076. #.wsp
  11077. 0    string    1.00\ .0000.0000\000\003    MSVC .wsp version 1.0000.0000
  11078. # these seem to start with the version and contain menus
  11079. # ------------------------------------------------------------------------
  11080. # mup: file(1) magic for Mup (Music Publisher) input file.
  11081. #
  11082. # From: Abel Cheung <abel (@) oaka.org>
  11083. #
  11084. # NOTE: This header is mainly proposed in the Arkkra mailing list,
  11085. # and is not a mandatory header because of old mup input file
  11086. # compatibility. Noteedit also use mup format, but is not forcing
  11087. # user to use any header as well.
  11088. #
  11089. 0        search/1    //!Mup        Mup music publication program input text
  11090. >6        string        -Arkkra        (Arkkra)
  11091. >>13        string        -        
  11092. >>>16        string        .        
  11093. >>>>14        string        x        \b, need V%.4s
  11094. >>>15        string        .        
  11095. >>>>14        string        x        \b, need V%.3s
  11096. >6        string        -        
  11097. >>9        string        .        
  11098. >>>7        string        x        \b, need V%.4s
  11099. >>8        string        .        
  11100. >>>7        string        x        \b, need V%.3s
  11101.  
  11102. #-----------------------------------------------------------------------------
  11103. # natinst:  file(1) magic for National Instruments Code Files
  11104.  
  11105. #
  11106. # From <egamez@fcfm.buap.mx> Enrique Gßmez-Flores
  11107. # version 1
  11108. # Many formats still missing, we use, for the moment LabVIEW
  11109. # We guess VXI format file. VISA, LabWindowsCVI, BridgeVIEW, etc, are missing
  11110. #
  11111. 0       string          RSRC            National Instruments,
  11112. # Check if it's a LabVIEW File
  11113. >8      string          LV              LabVIEW File,
  11114. # Check wich kind of file is
  11115. >>10    string          SB              Code Resource File, data
  11116. >>10    string          IN              Virtual Instrument Program, data
  11117. >>10    string          AR              VI Library, data
  11118. # This is for Menu Libraries
  11119. >8      string          LMNULBVW        Portable File Names, data
  11120. # This is for General Resources
  11121. >8      string          rsc             Resources File, data
  11122. # This is for VXI Package
  11123. 0       string          VMAP            National Instruments, VXI File, data
  11124.  
  11125. #------------------------------------------------------------------------------
  11126. # ncr:  file(1) magic for NCR Tower objects
  11127. #
  11128. # contributed by
  11129. # Michael R. Wayne  ***  TMC & Associates  ***  INTERNET: wayne@ford-vax.arpa
  11130. # uucp: {philabs | pyramid} !fmsrl7!wayne   OR   wayne@fmsrl7.UUCP
  11131. #
  11132. 0    beshort        000610    Tower/XP rel 2 object
  11133. >12       belong        >0    not stripped
  11134. >20       beshort        0407    executable
  11135. >20       beshort        0410    pure executable
  11136. >22       beshort        >0    - version %ld
  11137. 0    beshort        000615    Tower/XP rel 2 object
  11138. >12       belong        >0    not stripped
  11139. >20       beshort        0407    executable
  11140. >20       beshort        0410    pure executable
  11141. >22       beshort        >0    - version %ld
  11142. 0    beshort        000620    Tower/XP rel 3 object
  11143. >12       belong        >0    not stripped
  11144. >20       beshort        0407    executable
  11145. >20       beshort        0410    pure executable
  11146. >22       beshort        >0    - version %ld
  11147. 0    beshort        000625    Tower/XP rel 3 object
  11148. >12       belong        >0    not stripped
  11149. >20       beshort        0407    executable
  11150. >20       beshort        0410    pure executable
  11151. >22       beshort        >0    - version %ld
  11152. 0    beshort        000630    Tower32/600/400 68020 object
  11153. >12       belong        >0    not stripped
  11154. >20       beshort        0407    executable
  11155. >20       beshort        0410    pure executable
  11156. >22       beshort        >0    - version %ld
  11157. 0    beshort        000640    Tower32/800 68020
  11158. >18       beshort        &020000    w/68881 object
  11159. >18       beshort        &040000    compatible object
  11160. >18       beshort        &060000    object
  11161. >20       beshort        0407    executable
  11162. >20       beshort        0413    pure executable
  11163. >12       belong        >0    not stripped
  11164. >22       beshort        >0    - version %ld
  11165. 0    beshort        000645    Tower32/800 68010
  11166. >18       beshort        &040000    compatible object
  11167. >18       beshort        &060000 object
  11168. >20       beshort        0407    executable
  11169. >20       beshort        0413    pure executable
  11170. >12       belong        >0    not stripped
  11171. >22       beshort        >0    - version %ld
  11172.  
  11173. #------------------------------------------------------------------------------
  11174. # netbsd:  file(1) magic for NetBSD objects
  11175. #
  11176. # All new-style magic numbers are in network byte order.
  11177. #
  11178.  
  11179. 0    lelong            000000407    a.out NetBSD little-endian object file
  11180. >16    lelong            >0        not stripped
  11181. 0    belong            000000407    a.out NetBSD big-endian object file
  11182. >16    belong            >0        not stripped
  11183.  
  11184. 0    belong&0377777777    041400413    a.out NetBSD/i386 demand paged
  11185. >0    byte            &0x80        
  11186. >>20    lelong            <4096        shared library
  11187. >>20    lelong            =4096        dynamically linked executable
  11188. >>20    lelong            >4096        dynamically linked executable
  11189. >0    byte            ^0x80        executable
  11190. >16    lelong            >0        not stripped
  11191. 0    belong&0377777777    041400410    a.out NetBSD/i386 pure
  11192. >0    byte            &0x80        dynamically linked executable
  11193. >0    byte            ^0x80        executable
  11194. >16    lelong            >0        not stripped
  11195. 0    belong&0377777777    041400407    a.out NetBSD/i386
  11196. >0    byte            &0x80        dynamically linked executable
  11197. >0    byte            ^0x80
  11198. >>0    byte            &0x40        position independent
  11199. >>20    lelong            !0        executable
  11200. >>20    lelong            =0        object file
  11201. >16    lelong            >0        not stripped
  11202. 0    belong&0377777777    041400507    a.out NetBSD/i386 core
  11203. >12    string            >\0        from '%s'
  11204. >32    lelong            !0        (signal %d)
  11205.  
  11206. 0    belong&0377777777    041600413    a.out NetBSD/m68k demand paged
  11207. >0    byte            &0x80        
  11208. >>20    belong            <8192        shared library
  11209. >>20    belong            =8192        dynamically linked executable
  11210. >>20    belong            >8192        dynamically linked executable
  11211. >0    byte            ^0x80        executable
  11212. >16    belong            >0        not stripped
  11213. 0    belong&0377777777    041600410    a.out NetBSD/m68k pure
  11214. >0    byte            &0x80        dynamically linked executable
  11215. >0    byte            ^0x80        executable
  11216. >16    belong            >0        not stripped
  11217. 0    belong&0377777777    041600407    a.out NetBSD/m68k
  11218. >0    byte            &0x80        dynamically linked executable
  11219. >0    byte            ^0x80
  11220. >>0    byte            &0x40        position independent
  11221. >>20    belong            !0        executable
  11222. >>20    belong            =0        object file
  11223. >16    belong            >0        not stripped
  11224. 0    belong&0377777777    041600507    a.out NetBSD/m68k core
  11225. >12    string            >\0        from '%s'
  11226. >32    belong            !0        (signal %d)
  11227.  
  11228. 0    belong&0377777777    042000413    a.out NetBSD/m68k4k demand paged
  11229. >0    byte            &0x80        
  11230. >>20    belong            <4096        shared library
  11231. >>20    belong            =4096        dynamically linked executable
  11232. >>20    belong            >4096        dynamically linked executable
  11233. >0    byte            ^0x80        executable
  11234. >16    belong            >0        not stripped
  11235. 0    belong&0377777777    042000410    a.out NetBSD/m68k4k pure
  11236. >0    byte            &0x80        dynamically linked executable
  11237. >0    byte            ^0x80        executable
  11238. >16    belong            >0        not stripped
  11239. 0    belong&0377777777    042000407    a.out NetBSD/m68k4k
  11240. >0    byte            &0x80        dynamically linked executable
  11241. >0    byte            ^0x80
  11242. >>0    byte            &0x40        position independent
  11243. >>20    belong            !0        executable
  11244. >>20    belong            =0        object file
  11245. >16    belong            >0        not stripped
  11246. 0    belong&0377777777    042000507    a.out NetBSD/m68k4k core
  11247. >12    string            >\0        from '%s'
  11248. >32    belong            !0        (signal %d)
  11249.  
  11250. 0    belong&0377777777    042200413    a.out NetBSD/ns32532 demand paged
  11251. >0    byte            &0x80        
  11252. >>20    lelong            <4096        shared library
  11253. >>20    lelong            =4096        dynamically linked executable
  11254. >>20    lelong            >4096        dynamically linked executable
  11255. >0    byte            ^0x80        executable
  11256. >16    lelong            >0        not stripped
  11257. 0    belong&0377777777    042200410    a.out NetBSD/ns32532 pure
  11258. >0    byte            &0x80        dynamically linked executable
  11259. >0    byte            ^0x80        executable
  11260. >16    lelong            >0        not stripped
  11261. 0    belong&0377777777    042200407    a.out NetBSD/ns32532
  11262. >0    byte            &0x80        dynamically linked executable
  11263. >0    byte            ^0x80
  11264. >>0    byte            &0x40        position independent
  11265. >>20    lelong            !0        executable
  11266. >>20    lelong            =0        object file
  11267. >16    lelong            >0        not stripped
  11268. 0    belong&0377777777    042200507    a.out NetBSD/ns32532 core
  11269. >12    string            >\0        from '%s'
  11270. >32    lelong            !0        (signal %d)
  11271.  
  11272. 0    belong&0377777777    045200507    a.out NetBSD/powerpc core
  11273. >12    string            >\0        from '%s'
  11274.  
  11275. 0    belong&0377777777    042400413    a.out NetBSD/sparc demand paged
  11276. >0    byte            &0x80        
  11277. >>20    belong            <8192        shared library
  11278. >>20    belong            =8192        dynamically linked executable
  11279. >>20    belong            >8192        dynamically linked executable
  11280. >0    byte            ^0x80        executable
  11281. >16    belong            >0        not stripped
  11282. 0    belong&0377777777    042400410    a.out NetBSD/sparc pure
  11283. >0    byte            &0x80        dynamically linked executable
  11284. >0    byte            ^0x80        executable
  11285. >16    belong            >0        not stripped
  11286. 0    belong&0377777777    042400407    a.out NetBSD/sparc
  11287. >0    byte            &0x80        dynamically linked executable
  11288. >0    byte            ^0x80
  11289. >>0    byte            &0x40        position independent
  11290. >>20    belong            !0        executable
  11291. >>20    belong            =0        object file
  11292. >16    belong            >0        not stripped
  11293. 0    belong&0377777777    042400507    a.out NetBSD/sparc core
  11294. >12    string            >\0        from '%s'
  11295. >32    belong            !0        (signal %d)
  11296.  
  11297. 0    belong&0377777777    042600413    a.out NetBSD/pmax demand paged
  11298. >0    byte            &0x80        
  11299. >>20    lelong            <4096        shared library
  11300. >>20    lelong            =4096        dynamically linked executable
  11301. >>20    lelong            >4096        dynamically linked executable
  11302. >0    byte            ^0x80        executable
  11303. >16    lelong            >0        not stripped
  11304. 0    belong&0377777777    042600410    a.out NetBSD/pmax pure
  11305. >0    byte            &0x80        dynamically linked executable
  11306. >0    byte            ^0x80        executable
  11307. >16    lelong            >0        not stripped
  11308. 0    belong&0377777777    042600407    a.out NetBSD/pmax
  11309. >0    byte            &0x80        dynamically linked executable
  11310. >0    byte            ^0x80
  11311. >>0    byte            &0x40        position independent
  11312. >>20    lelong            !0        executable
  11313. >>20    lelong            =0        object file
  11314. >16    lelong            >0        not stripped
  11315. 0    belong&0377777777    042600507    a.out NetBSD/pmax core
  11316. >12    string            >\0        from '%s'
  11317. >32    lelong            !0        (signal %d)
  11318.  
  11319. 0    belong&0377777777    043000413    a.out NetBSD/vax 1k demand paged
  11320. >0    byte            &0x80        
  11321. >>20    lelong            <4096        shared library
  11322. >>20    lelong            =4096        dynamically linked executable
  11323. >>20    lelong            >4096        dynamically linked executable
  11324. >0    byte            ^0x80        executable
  11325. >16    lelong            >0        not stripped
  11326. 0    belong&0377777777    043000410    a.out NetBSD/vax 1k pure
  11327. >0    byte            &0x80        dynamically linked executable
  11328. >0    byte            ^0x80        executable
  11329. >16    lelong            >0        not stripped
  11330. 0    belong&0377777777    043000407    a.out NetBSD/vax 1k
  11331. >0    byte            &0x80        dynamically linked executable
  11332. >0    byte            ^0x80
  11333. >>0    byte            &0x40        position independent
  11334. >>20    lelong            !0        executable
  11335. >>20    lelong            =0        object file
  11336. >16    lelong            >0        not stripped
  11337. 0    belong&0377777777    043000507    a.out NetBSD/vax 1k core
  11338. >12    string            >\0        from '%s'
  11339. >32    lelong            !0        (signal %d)
  11340.  
  11341. 0    belong&0377777777    045400413    a.out NetBSD/vax 4k demand paged
  11342. >0    byte            &0x80        
  11343. >>20    lelong            <4096        shared library
  11344. >>20    lelong            =4096        dynamically linked executable
  11345. >>20    lelong            >4096        dynamically linked executable
  11346. >0    byte            ^0x80        executable
  11347. >16    lelong            >0        not stripped
  11348. 0    belong&0377777777    045400410    a.out NetBSD/vax 4k pure
  11349. >0    byte            &0x80        dynamically linked executable
  11350. >0    byte            ^0x80        executable
  11351. >16    lelong            >0        not stripped
  11352. 0    belong&0377777777    045400407    a.out NetBSD/vax 4k
  11353. >0    byte            &0x80        dynamically linked executable
  11354. >0    byte            ^0x80
  11355. >>0    byte            &0x40        position independent
  11356. >>20    lelong            !0        executable
  11357. >>20    lelong            =0        object file
  11358. >16    lelong            >0        not stripped
  11359. 0    belong&0377777777    045400507    a.out NetBSD/vax 4k core
  11360. >12    string            >\0        from '%s'
  11361. >32    lelong            !0        (signal %d)
  11362.  
  11363. # NetBSD/alpha does not support (and has never supported) a.out objects,
  11364. # so no rules are provided for them.  NetBSD/alpha ELF objects are 
  11365. # dealt with in "elf".
  11366. 0    lelong        0x00070185        ECOFF NetBSD/alpha binary
  11367. >10    leshort        0x0001            not stripped
  11368. >10    leshort        0x0000            stripped
  11369. 0    belong&0377777777    043200507    a.out NetBSD/alpha core
  11370. >12    string            >\0        from '%s'
  11371. >32    lelong            !0        (signal %d)
  11372.  
  11373. 0    belong&0377777777    043400413    a.out NetBSD/mips demand paged
  11374. >0    byte            &0x80        
  11375. >>20    belong            <8192        shared library
  11376. >>20    belong            =8192        dynamically linked executable
  11377. >>20    belong            >8192        dynamically linked executable
  11378. >0    byte            ^0x80        executable
  11379. >16    belong            >0        not stripped
  11380. 0    belong&0377777777    043400410    a.out NetBSD/mips pure
  11381. >0    byte            &0x80        dynamically linked executable
  11382. >0    byte            ^0x80        executable
  11383. >16    belong            >0        not stripped
  11384. 0    belong&0377777777    043400407    a.out NetBSD/mips
  11385. >0    byte            &0x80        dynamically linked executable
  11386. >0    byte            ^0x80
  11387. >>0    byte            &0x40        position independent
  11388. >>20    belong            !0        executable
  11389. >>20    belong            =0        object file
  11390. >16    belong            >0        not stripped
  11391. 0    belong&0377777777    043400507    a.out NetBSD/mips core
  11392. >12    string            >\0        from '%s'
  11393. >32    belong            !0        (signal %d)
  11394.  
  11395. 0    belong&0377777777    043600413    a.out NetBSD/arm32 demand paged
  11396. >0    byte            &0x80
  11397. >>20    lelong            <4096        shared library
  11398. >>20    lelong            =4096        dynamically linked executable
  11399. >>20    lelong            >4096        dynamically linked executable
  11400. >0    byte            ^0x80        executable
  11401. >16    lelong            >0        not stripped
  11402. 0    belong&0377777777    043600410    a.out NetBSD/arm32 pure
  11403. >0    byte            &0x80        dynamically linked executable
  11404. >0    byte            ^0x80        executable
  11405. >16    lelong            >0        not stripped
  11406. 0    belong&0377777777    043600407    a.out NetBSD/arm32
  11407. >0    byte            &0x80        dynamically linked executable
  11408. >0    byte            ^0x80
  11409. >>0    byte            &0x40        position independent
  11410. >>20    lelong            !0        executable
  11411. >>20    lelong            =0        object file
  11412. >16    lelong            >0        not stripped
  11413. # NetBSD/arm26 has always used ELF objects, but it shares a core file
  11414. # format with NetBSD/arm32.
  11415. 0    belong&0377777777    043600507    a.out NetBSD/arm core
  11416. >12    string            >\0        from '%s'
  11417. >32    lelong            !0        (signal %d)
  11418.  
  11419. #------------------------------------------------------------------------------
  11420. # netscape:  file(1) magic for Netscape files
  11421. # "H. Nanosecond" <aldomel@ix.netcom.com>
  11422. # version 3 and 4 I think
  11423. #
  11424.  
  11425. # Netscape Address book  .nab
  11426. 0    string \000\017\102\104\000\000\000\000\000\000\001\000\000\000\000\002\000\000\000\002\000\000\004\000 Netscape Address book
  11427.  
  11428. # Netscape Communicator address book
  11429. 0   string   \000\017\102\111 Netscape Communicator address book
  11430.  
  11431. # .snm Caches
  11432. 0    string        #\ Netscape\ folder\ cache    Netscape folder cache
  11433. 0    string    \000\036\204\220\000    Netscape folder cache
  11434. # .n2p 
  11435. # Net 2 Phone 
  11436. #0    string    123\130\071\066\061\071\071\071\060\070\061\060\061\063\060
  11437. 0    string    SX961999    Net2phone
  11438.  
  11439. #
  11440. #This is files ending in .art, FIXME add more rules
  11441. 0       string          JG\004\016\0\0\0\0      ART
  11442.  
  11443. #------------------------------------------------------------------------------
  11444. # netware:  file(1) magic for NetWare Loadable Modules (NLMs)
  11445. # From: Mads Martin Joergensen <mmj@suse.de>
  11446.  
  11447. 0    string    NetWare\ Loadable\ Module    NetWare Loadable Module
  11448.  
  11449. #------------------------------------------------------------------------------
  11450. # news:  file(1) magic for SunOS NeWS fonts (not "news" as in "netnews")
  11451. #
  11452. 0    string        StartFontMetrics    ASCII font metrics
  11453. 0    string        StartFont    ASCII font bits
  11454. 0    belong        0x137A2944    NeWS bitmap font
  11455. 0    belong        0x137A2947    NeWS font family
  11456. 0    belong        0x137A2950    scalable OpenFont binary
  11457. 0    belong        0x137A2951    encrypted scalable OpenFont binary
  11458. 8    belong        0x137A2B45    X11/NeWS bitmap font
  11459. 8    belong        0x137A2B48    X11/NeWS font family
  11460. #------------------------------------------------------------------------------
  11461. # nitpicker:  file(1) magic for Flowfiles.
  11462. # From: Christian Jachmann <C.Jachmann@gmx.net> http://www.nitpicker.de
  11463. 0    string    NPFF    NItpicker Flow File 
  11464. >4    byte    x    V%d.
  11465. >5    byte    x    %d
  11466. >6    bedate    x    started: %s
  11467. >10    bedate    x    stopped: %s
  11468. >14    belong    x    Bytes: %u
  11469. >18    belong    x    Bytes1: %u
  11470. >22    belong    x    Flows: %u
  11471. >26    belong    x    Pkts: %u
  11472.  
  11473. #------------------------------------------------------------------------------
  11474. # ocaml: file(1) magic for Objective Caml files.
  11475. 0    string    Caml1999    OCaml
  11476. >8    string    X        exec file
  11477. >8    string    I        interface file (.cmi)
  11478. >8    string    O        object file (.cmo)
  11479. >8    string    A        library file (.cma)
  11480. >8    string    Y        native object file (.cmx)
  11481. >8    string    Z        native library file (.cmxa)
  11482. >8    string    M        abstract syntax tree implementation file
  11483. >8    string    N        abstract syntax tree interface file
  11484. >9    string    >\0        (Version %3.3s)
  11485. #------------------------------------------------------------------------------
  11486. # octave binary data file(1) magic, from Dirk Eddelbuettel <edd@debian.org>
  11487. 0    string        Octave-1-L    Octave binary data (little endian)
  11488. 0    string        Octave-1-B    Octave binary data (big endian)
  11489.  
  11490. #------------------------------------------------------------------------------
  11491. # Microsoft OLE 2 Compound Documents : file(1) magic for Microsoft Structured
  11492. # storage (http://en.wikipedia.org/wiki/Structured_Storage)
  11493. # Additional tests for OLE 2 Compound Documents should be under this recipe.
  11494.  
  11495. 0   string  \320\317\021\340\241\261\032\341      OLE 2 Compound Document
  11496. # - Microstation V8 DGN files (www.bentley.com)
  11497. #   Last update on 10/23/2006 by Lester Hightower
  11498. > 0x480  string  D\000g\000n\000~\000H                : Microstation V8 DGN
  11499. # - Visio documents
  11500. #   Last update on 10/23/2006 by Lester Hightower
  11501. > 0x480  string  V\000i\000s\000i\000o\000D\000o\000c : Visio Document
  11502.  
  11503. #------------------------------------------------------------------------------
  11504. # olf:  file(1) magic for OLF executables
  11505. #
  11506. # We have to check the byte order flag to see what byte order all the
  11507. # other stuff in the header is in.
  11508. #
  11509. # MIPS R3000 may also be for MIPS R2000.
  11510. # What're the correct byte orders for the nCUBE and the Fujitsu VPP500?
  11511. #
  11512. # Created by Erik Theisen <etheisen@openbsd.org>
  11513. # Based on elf from Daniel Quinlan <quinlan@yggdrasil.com>
  11514. 0    string        \177OLF        OLF
  11515. >4    byte        0        invalid class
  11516. >4    byte        1        32-bit
  11517. >4    byte        2        64-bit
  11518. >7    byte        0        invalid os
  11519. >7    byte        1        OpenBSD
  11520. >7    byte        2        NetBSD
  11521. >7    byte        3        FreeBSD
  11522. >7    byte        4        4.4BSD
  11523. >7    byte        5        Linux
  11524. >7    byte        6        SVR4
  11525. >7    byte        7        esix
  11526. >7    byte        8        Solaris
  11527. >7    byte        9        Irix
  11528. >7    byte        10        SCO
  11529. >7    byte        11        Dell
  11530. >7    byte        12        NCR
  11531. >5    byte        0        invalid byte order
  11532. >5    byte        1        LSB
  11533. >>16    leshort        0        no file type,
  11534. >>16    leshort        1        relocatable,
  11535. >>16    leshort        2        executable,
  11536. >>16    leshort        3        shared object,
  11537. # Core handling from Peter Tobias <tobias@server.et-inf.fho-emden.de>
  11538. # corrections by Christian 'Dr. Disk' Hechelmann <drdisk@ds9.au.s.shuttle.de>
  11539. >>16    leshort        4        core file
  11540. >>>(0x38+0xcc) string    >\0        of '%s'
  11541. >>>(0x38+0x10) lelong    >0        (signal %d),
  11542. >>16    leshort        &0xff00        processor-specific,
  11543. >>18    leshort        0        no machine,
  11544. >>18    leshort        1        AT&T WE32100 - invalid byte order,
  11545. >>18    leshort        2        SPARC - invalid byte order,
  11546. >>18    leshort        3        Intel 80386,
  11547. >>18    leshort        4        Motorola 68000 - invalid byte order,
  11548. >>18    leshort        5        Motorola 88000 - invalid byte order,
  11549. >>18    leshort        6        Intel 80486,
  11550. >>18    leshort        7        Intel 80860,
  11551. >>18    leshort        8        MIPS R3000_BE - invalid byte order,
  11552. >>18    leshort        9        Amdahl - invalid byte order,
  11553. >>18    leshort        10        MIPS R3000_LE,
  11554. >>18    leshort        11        RS6000 - invalid byte order,
  11555. >>18    leshort        15        PA-RISC - invalid byte order,
  11556. >>18    leshort        16        nCUBE,
  11557. >>18    leshort        17        VPP500,
  11558. >>18    leshort        18        SPARC32PLUS,
  11559. >>18    leshort        20        PowerPC,
  11560. >>18    leshort        0x9026        Alpha,
  11561. >>20    lelong        0        invalid version
  11562. >>20    lelong        1        version 1
  11563. >>36    lelong        1        MathCoPro/FPU/MAU Required
  11564. >8    string        >\0        (%s)
  11565. >5    byte        2        MSB
  11566. >>16    beshort        0        no file type,
  11567. >>16    beshort        1        relocatable,
  11568. >>16    beshort        2        executable,
  11569. >>16    beshort        3        shared object,
  11570. >>16    beshort        4        core file,
  11571. >>>(0x38+0xcc) string    >\0        of '%s'
  11572. >>>(0x38+0x10) belong    >0        (signal %d),
  11573. >>16    beshort        &0xff00        processor-specific,
  11574. >>18    beshort        0        no machine,
  11575. >>18    beshort        1        AT&T WE32100,
  11576. >>18    beshort        2        SPARC,
  11577. >>18    beshort        3        Intel 80386 - invalid byte order,
  11578. >>18    beshort        4        Motorola 68000,
  11579. >>18    beshort        5        Motorola 88000,
  11580. >>18    beshort        6        Intel 80486 - invalid byte order,
  11581. >>18    beshort        7        Intel 80860,
  11582. >>18    beshort        8        MIPS R3000_BE,
  11583. >>18    beshort        9        Amdahl,
  11584. >>18    beshort        10        MIPS R3000_LE - invalid byte order,
  11585. >>18    beshort        11        RS6000,
  11586. >>18    beshort        15        PA-RISC,
  11587. >>18    beshort        16        nCUBE,
  11588. >>18    beshort        17        VPP500,
  11589. >>18    beshort        18        SPARC32PLUS,
  11590. >>18    beshort        20        PowerPC or cisco 4500,
  11591. >>18    beshort        21        cisco 7500,
  11592. >>18    beshort        24        cisco SVIP,
  11593. >>18    beshort        25        cisco 7200,
  11594. >>18    beshort        36        cisco 12000,
  11595. >>18    beshort        0x9026        Alpha,
  11596. >>20    belong        0        invalid version
  11597. >>20    belong        1        version 1
  11598. >>36    belong        1        MathCoPro/FPU/MAU Required
  11599. #------------------------------------------------------------------------------
  11600. # os2:  file(1) magic for OS/2 files
  11601. #
  11602.  
  11603. # Provided 1998/08/22 by
  11604. # David Mediavilla <davidme.news@REMOVEIFNOTSPAMusa.net>
  11605. 1    search/1    InternetShortcut    MS Windows 95 Internet shortcut text
  11606. >24    search/1    >\             (URL=<%s>)
  11607.  
  11608. # OS/2 URL objects
  11609. # Provided 1998/08/22 by
  11610. # David Mediavilla <davidme.news@REMOVEIFNOTSPAMusa.net>
  11611. #0    string    http:            OS/2 URL object text
  11612. #>5    string    >\            (WWW) <http:%s>
  11613. #0    string    mailto:            OS/2 URL object text
  11614. #>7    string    >\            (email) <%s>
  11615. #0    string    news:            OS/2 URL object text
  11616. #>5    string    >\            (Usenet) <%s>
  11617. #0    string    ftp:            OS/2 URL object text
  11618. #>4    string    >\            (FTP) <ftp:%s>
  11619. #0    string    file:            OS/2 URL object text
  11620. #>5    string    >\            (Local file) <%s>
  11621.  
  11622. # >>>>> OS/2 INF/HLP <<<<<  (source: Daniel Dissett ddissett@netcom.com)
  11623. # Carl Hauser (chauser.parc@xerox.com) and 
  11624. # Marcus Groeber (marcusg@ph-cip.uni-koeln.de)
  11625. # list the following header format in inf02a.doc:
  11626. #
  11627. #  int16 ID;           // ID magic word (5348h = "HS")
  11628. #  int8  unknown1;     // unknown purpose, could be third letter of ID
  11629. #  int8  flags;        // probably a flag word...
  11630. #                      //  bit 0: set if INF style file
  11631. #                      //  bit 4: set if HLP style file
  11632. #                      // patching this byte allows reading HLP files
  11633. #                      // using the VIEW command, while help files 
  11634. #                      // seem to work with INF settings here as well.
  11635. #  int16 hdrsize;      // total size of header
  11636. #  int16 unknown2;     // unknown purpose
  11637. 0   string  HSP\x01\x9b\x00 OS/2 INF
  11638. >107 string >0                      (%s)
  11639. 0   string  HSP\x10\x9b\x00     OS/2 HLP
  11640. >107 string >0                      (%s)
  11641.  
  11642. # OS/2 INI (this is a guess)
  11643. 0  string   \xff\xff\xff\xff\x14\0\0\0  OS/2 INI
  11644. #------------------------------------------------------------------------------
  11645. # os400:  file(1) magic for IBM OS/400 files
  11646. #
  11647. # IBM OS/400 (i5/OS) Save file (SAVF) - gerardo.cacciari@gmail.com
  11648. # In spite of its quite variable format (due to internal memory page
  11649. # length differences between CISC and RISC versions of the OS) the
  11650. # SAVF structure hasn't suitable offsets to identify the catalog
  11651. # header in the first descriptor where there are some useful infos,
  11652. # so we must search in a somewhat large area for a particular string
  11653. # that represents the EBCDIC encoding of 'QSRDSSPC' (save/restore
  11654. # descriptor space) preceded by a two byte constant.
  11655. #
  11656. 1090     search/7393    \x19\xDB\xD8\xE2\xD9\xC4\xE2\xE2\xD7\xC3 IBM OS/400 save file data
  11657. >&212     byte        0x01             \b, created with SAVOBJ
  11658. >&212     byte        0x02             \b, created with SAVLIB
  11659. >&212     byte        0x07             \b, created with SAVCFG
  11660. >&212     byte        0x08             \b, created with SAVSECDTA
  11661. >&212     byte        0x0A             \b, created with SAVSECDTA
  11662. >&212     byte        0x0B             \b, created with SAVDLO
  11663. >&212     byte        0x0D             \b, created with SAVLICPGM
  11664. >&212     byte        0x11             \b, created with SAVCHGOBJ
  11665. >&213     byte        0x44             \b, at least V5R4 to open
  11666. >&213     byte        0x43             \b, at least V5R3 to open
  11667. >&213     byte        0x42             \b, at least V5R2 to open
  11668. >&213     byte        0x41             \b, at least V5R1 to open
  11669. >&213     byte        0x40             \b, at least V4R5 to open
  11670. >&213     byte        0x3F             \b, at least V4R4 to open
  11671. >&213     byte        0x3E             \b, at least V4R3 to open
  11672. >&213     byte        0x3C             \b, at least V4R2 to open
  11673. >&213     byte        0x3D             \b, at least V4R1M4 to open
  11674. >&213     byte        0x3B             \b, at least V4R1 to open
  11675. >&213     byte        0x3A             \b, at least V3R7 to open
  11676. >&213     byte        0x35             \b, at least V3R6 to open
  11677. >&213     byte        0x36             \b, at least V3R2 to open
  11678. >&213     byte        0x34             \b, at least V3R1 to open
  11679. >&213     byte        0x31             \b, at least V3R0M5 to open
  11680. >&213     byte        0x30             \b, at least V2R3 to open
  11681. #
  11682. # Copyright (c) 1996 Ignatios Souvatzis. All rights reserved.
  11683. #
  11684. # Redistribution and use in source and binary forms, with or without
  11685. # modification, are permitted provided that the following conditions
  11686. # are met:
  11687. # 1. Redistributions of source code must retain the above copyright
  11688. #    notice, this list of conditions and the following disclaimer.
  11689. # 2. Redistributions in binary form must reproduce the above copyright
  11690. #    notice, this list of conditions and the following disclaimer in the
  11691. #    documentation and/or other materials provided with the distribution.
  11692. # 3. All advertising materials mentioning features or use of this software
  11693. #    must display the following acknowledgement:
  11694. #      This product includes software developed by Ignatios Souvatzis for
  11695. #      the NetBSD project.
  11696. # 4. The name of the author may not be used to endorse or promote products
  11697. #    derived from this software without specific prior written permission.
  11698. #
  11699. #
  11700. # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
  11701. # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  11702. # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  
  11703. # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  11704. # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  11705. # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
  11706. # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
  11707. # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
  11708. # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
  11709. # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  11710. #
  11711. #
  11712. #
  11713. # OS9/6809 module descriptions:
  11714. #
  11715. 0    beshort        0x87CD    OS9/6809 module:
  11716. #
  11717. >6    byte&0x0f    0x00    non-executable
  11718. >6    byte&0x0f    0x01    machine language
  11719. >6    byte&0x0f    0x02    BASIC I-code
  11720. >6    byte&0x0f    0x03    Pascal P-code
  11721. >6    byte&0x0f    0x04    C I-code
  11722. >6    byte&0x0f    0x05    COBOL I-code
  11723. >6    byte&0x0f    0x06    Fortran I-code
  11724. #
  11725. >6    byte&0xf0    0x10    program executable
  11726. >6    byte&0xf0    0x20    subroutine
  11727. >6    byte&0xf0    0x30    multi-module
  11728. >6    byte&0xf0    0x40    data module
  11729. #
  11730. >6    byte&0xf0    0xC0    system module
  11731. >6    byte&0xf0    0xD0    file manager
  11732. >6    byte&0xf0    0xE0    device driver
  11733. >6    byte&0xf0    0xF0    device descriptor
  11734. #
  11735. # OS9/m68k stuff (to be continued)
  11736. #
  11737. 0    beshort        0x4AFC    OS9/68K module:
  11738. #
  11739. # attr
  11740. >0x14    byte&0x80    0x80    re-entrant
  11741. >0x14    byte&0x40    0x40    ghost
  11742. >0x14    byte&0x20    0x20    system-state
  11743. #
  11744. # lang:
  11745. #
  11746. >0x13    byte        1    machine language
  11747. >0x13    byte        2    BASIC I-code
  11748. >0x13    byte        3    Pascal P-code
  11749. >0x13    byte        4    C I-code
  11750. >0x13    byte        5    COBOL I-code
  11751. >0x13    byte        6    Fortran I-code
  11752. #
  11753. #
  11754. # type:
  11755. #
  11756. >0x12    byte        1    program executable
  11757. >0x12    byte        2    subroutine
  11758. >0x12    byte        3    multi-module
  11759. >0x12    byte        4    data module
  11760. >0x12    byte        11    trap library
  11761. >0x12    byte        12    system module
  11762. >0x12    byte        13    file manager
  11763. >0x12    byte        14    device driver
  11764. >0x12    byte        15    device descriptor
  11765. #
  11766. # Mach magic number info
  11767. #
  11768. 0    long        0xefbe    OSF/Rose object
  11769. # I386 magic number info
  11770. #
  11771. 0    short        0565    i386 COFF object
  11772.  
  11773. #------------------------------------------------------------------------------
  11774. # palm:  file(1) magic for PalmOS {.prc,.pdb}: applications, docfiles, and hacks
  11775. #
  11776. # Brian Lalor <blalor@hcirisc.cs.binghamton.edu>
  11777.  
  11778. # appl
  11779. 60      belong                  0x6170706c      PalmOS application
  11780. >0      string                  >\0             "%s"
  11781. # TEXt
  11782. 60      belong                  0x54455874      AportisDoc file
  11783. >0      string                  >\0             "%s"
  11784. # HACK
  11785. 60      belong                  0x4841434b      HackMaster hack
  11786. >0      string                  >\0             "%s"
  11787.  
  11788. # Variety of PalmOS document types
  11789. # Michael-John Turner <mj@debian.org>
  11790. # Thanks to Hasan Umit Ezerce <humit@tr-net.net.tr> for his DocType
  11791. 60    string                    BVokBDIC    BDicty PalmOS document
  11792. >0    string                  >\0             "%s"
  11793. 60    string                    DB99DBOS    DB PalmOS document
  11794. >0    string                  >\0             "%s"
  11795. 60    string                    vIMGView    FireViewer/ImageViewer PalmOS document
  11796. >0    string                  >\0             "%s"
  11797. 60    string                    PmDBPmDB    HanDBase PalmOS document
  11798. >0    string                  >\0             "%s"
  11799. 60    string                    InfoINDB    InfoView PalmOS document
  11800. >0    string                  >\0             "%s"
  11801. 60    string                    ToGoToGo    iSilo PalmOS document
  11802. >0    string                  >\0             "%s"
  11803. 60    string                    JfDbJBas    JFile PalmOS document
  11804. >0    string                  >\0             "%s"
  11805. 60    string                    JfDbJFil    JFile Pro PalmOS document
  11806. >0    string                  >\0             "%s"
  11807. 60    string                    DATALSdb    List PalmOS document
  11808. >0    string                  >\0             "%s"
  11809. 60    string                    Mdb1Mdb1    MobileDB PalmOS document
  11810. >0    string                  >\0             "%s"
  11811. 60    string                    PNRdPPrs    PeanutPress PalmOS document
  11812. >0    string                  >\0             "%s"
  11813. 60    string                    DataPlkr    Plucker PalmOS document
  11814. >0    string                  >\0             "%s"
  11815. 60    string                    DataSprd    QuickSheet PalmOS document
  11816. >0    string                  >\0             "%s"
  11817. 60    string                    SM01SMem    SuperMemo PalmOS document
  11818. >0    string                  >\0             "%s"
  11819. 60    string                    TEXtTlDc    TealDoc PalmOS document
  11820. >0    string                  >\0             "%s"
  11821. 60    string                    InfoTlIf    TealInfo PalmOS document
  11822. >0    string                  >\0             "%s"
  11823. 60    string                    DataTlMl    TealMeal PalmOS document
  11824. >0    string                  >\0             "%s"
  11825. 60    string                    DataTlPt    TealPaint PalmOS document
  11826. >0    string                  >\0             "%s"
  11827. 60    string                    dataTDBP    ThinkDB PalmOS document
  11828. >0    string                  >\0             "%s"
  11829. 60    string                    TdatTide    Tides PalmOS document
  11830. >0    string                  >\0             "%s"
  11831. 60    string                    ToRaTRPW    TomeRaider PalmOS document
  11832. >0    string                  >\0             "%s"
  11833.  
  11834. # A GutenPalm zTXT etext for use on Palm Pilots (http://gutenpalm.sf.net)
  11835. # For version 1.xx zTXTs, outputs version and numbers of bookmarks and
  11836. #   annotations.
  11837. # For other versions, just outputs version.
  11838. #
  11839. 60        string        zTXT        A GutenPalm zTXT e-book
  11840. >0        string        >\0        "%s"
  11841. >(0x4E.L)    byte        0
  11842. >>(0x4E.L+1)    byte        x        (v0.%02d)
  11843. >(0x4E.L)    byte        1
  11844. >>(0x4E.L+1)    byte        x        (v1.%02d)
  11845. >>>(0x4E.L+10)    beshort        >0
  11846. >>>>(0x4E.L+10) beshort        <2        - 1 bookmark
  11847. >>>>(0x4E.L+10) beshort        >1        - %d bookmarks
  11848. >>>(0x4E.L+14)    beshort        >0
  11849. >>>>(0x4E.L+14) beshort        <2        - 1 annotation
  11850. >>>>(0x4E.L+14) beshort        >1        - %d annotations
  11851. >(0x4E.L)    byte        >1        (v%d.
  11852. >>(0x4E.L+1)    byte        x        %02d)
  11853.  
  11854. # Palm OS .prc file types
  11855. 60        string        libr        Palm OS dynamic library data
  11856. >0        string        >\0        "%s"
  11857. 60        string        ptch        Palm OS operating system patch data
  11858. >0        string        >\0        "%s"
  11859.  
  11860. # Mobipocket (www.mobipocket.com), donated by Carl Witty
  11861. 60    string                    BOOKMOBI    Mobipocket E-book
  11862. >0    string                  >\0             "%s"
  11863.  
  11864. #------------------------------------------------------------------------------
  11865. #
  11866. # Parix COFF executables
  11867. # From: Ignatios Souvatzis <ignatios@cs.uni-bonn.de>
  11868. #
  11869. 0    beshort&0xfff    0xACE    PARIX
  11870. >0    byte&0xf0    0x80    T800
  11871. >0    byte&0xf0    0x90    T9000
  11872. >19    byte&0x02    0x02    executable
  11873. >19    byte&0x02    0x00    object
  11874. >19    byte&0x0c    0x00    not stripped
  11875.  
  11876. #------------------------------------------------------------------------------
  11877. # pbm:  file(1) magic for Portable Bitmap files
  11878. #
  11879. # XXX - byte order?
  11880. #
  11881. 0    short    0x2a17    "compact bitmap" format (Poskanzer)
  11882. #------------------------------------------------------------------------------
  11883. # pdf:  file(1) magic for Portable Document Format
  11884. #
  11885.  
  11886. 0    string        %PDF-        PDF document
  11887. !:mime    application/pdf
  11888. >5    byte        x        \b, version %c
  11889. >7    byte        x        \b.%c
  11890.  
  11891. # From: Nick Schmalenberger <nick@schmalenberger.us>
  11892. # Forms Data Format
  11893. 0       string          %FDF-           FDF document
  11894. >5      byte            x               \b, version %c
  11895. >7      byte            x               \b.%c
  11896.  
  11897. #------------------------------------------------------------------------------
  11898. # pdp:  file(1) magic for PDP-11 executable/object and APL workspace
  11899. #
  11900. 0    lelong        0101555        PDP-11 single precision APL workspace
  11901. 0    lelong        0101554        PDP-11 double precision APL workspace
  11902. #
  11903. # PDP-11 a.out
  11904. #
  11905. 0    leshort        0407        PDP-11 executable
  11906. >8    leshort        >0        not stripped
  11907. >15    byte        >0        - version %ld
  11908.  
  11909. 0    leshort        0401        PDP-11 UNIX/RT ldp
  11910. 0    leshort        0405        PDP-11 old overlay
  11911.  
  11912. 0    leshort        0410        PDP-11 pure executable
  11913. >8    leshort        >0        not stripped
  11914. >15    byte        >0        - version %ld
  11915.  
  11916. 0    leshort        0411        PDP-11 separate I&D executable
  11917. >8    leshort        >0        not stripped
  11918. >15    byte        >0        - version %ld
  11919.  
  11920. 0    leshort        0437        PDP-11 kernel overlay
  11921.  
  11922. # These last three are derived from 2.11BSD file(1)
  11923. 0    leshort        0413        PDP-11 demand-paged pure executable
  11924. >8    leshort        >0        not stripped
  11925.  
  11926. 0    leshort        0430        PDP-11 overlaid pure executable
  11927. >8    leshort        >0        not stripped
  11928.  
  11929. 0    leshort        0431        PDP-11 overlaid separate executable
  11930. >8    leshort        >0        not stripped
  11931. #------------------------------------------------------------------------------
  11932. # perl:  file(1) magic for Larry Wall's perl language.
  11933. #
  11934. # The `eval' lines recognizes an outrageously clever hack.
  11935. # Keith Waclena <keith@cerberus.uchicago.edu>
  11936. # Send additions to <perl5-porters@perl.org>
  11937. 0    search/1/b    #!\ /bin/perl            Perl script text executable
  11938. !:mime    text/x-perl
  11939. 0    search/1    eval\ "exec\ /bin/perl        Perl script text
  11940. !:mime    text/x-perl
  11941. 0    search/1/b    #!\ /usr/bin/perl        Perl script text executable
  11942. !:mime    text/x-perl
  11943. 0    search/1    eval\ "exec\ /usr/bin/perl    Perl script text
  11944. !:mime    text/x-perl
  11945. 0    search/1/b    #!\ /usr/local/bin/perl        Perl script text executable
  11946. !:mime    text/x-perl
  11947. 0    search/1    eval\ "exec\ /usr/local/bin/perl    Perl script text
  11948. !:mime    text/x-perl
  11949. 0    search/1    eval\ '(exit\ $?0)'\ &&\ eval\ 'exec    Perl script text
  11950. !:mime    text/x-perl
  11951.  
  11952.  
  11953. # by Dmitry V. Levin and Alexey Tourbin
  11954. # check the first line
  11955. 0    search/1    package
  11956. >0    regex        \^package[\ \t]+[0-9A-Za-z_:]+\ *;    Perl5 module source text
  11957. # not 'p', check other lines
  11958. 0    search/1    !p
  11959. >0    regex        \^package[\ \t]+[0-9A-Za-z_:]+\ *;
  11960. >>0    regex        \^1\ *;|\^(use|sub|my)\ .*[(;{=]    Perl5 module source text
  11961.  
  11962.  
  11963.  
  11964. # Perl POD documents
  11965. # From: Tom Hukins <tom@eborcom.com>
  11966. 0    search/1/B    \=pod\n        Perl POD document text
  11967. 0    search/1/B    \n\=pod\n    Perl POD document text
  11968. 0    search/1/B    \=head1\     Perl POD document text
  11969. 0    search/1/B    \n\=head1\     Perl POD document text
  11970. 0    search/1/B    \=head2\     Perl POD document text
  11971. 0    search/1/B    \n\=head2\     Perl POD document text
  11972.  
  11973. # Perl Storable data files.
  11974. 0    string    perl-store    perl Storable (v0.6) data
  11975. >4    byte    >0    (net-order %d)
  11976. >>4    byte    &01    (network-ordered)
  11977. >>4    byte    =3    (major 1)
  11978. >>4    byte    =2    (major 1)
  11979.  
  11980. 0    string    pst0    perl Storable (v0.7) data
  11981. >4    byte    >0
  11982. >>4    byte    &01    (network-ordered)
  11983. >>4    byte    =5    (major 2)
  11984. >>4    byte    =4    (major 2)
  11985. >>5    byte    >0    (minor %d)
  11986.  
  11987. #------------------------------------------------------------------------------
  11988. # pgp:  file(1) magic for Pretty Good Privacy
  11989. # see http://lists.gnupg.org/pipermail/gnupg-devel/1999-September/016052.html
  11990. #
  11991. 0       beshort         0x9900                  PGP key public ring
  11992. !:mime    application/x-pgp-keyring
  11993. 0       beshort         0x9501                  PGP key security ring
  11994. !:mime    application/x-pgp-keyring
  11995. 0       beshort         0x9500                  PGP key security ring
  11996. !:mime    application/x-pgp-keyring
  11997. 0    beshort        0xa600            PGP encrypted data
  11998. #!:mime    application/pgp-encrypted
  11999. #0    string        -----BEGIN\040PGP    text/PGP armored data
  12000. !:mime    text/PGP # encoding: armored data
  12001. #>15    string    PUBLIC\040KEY\040BLOCK-    public key block
  12002. #>15    string    MESSAGE-        message
  12003. #>15    string    SIGNED\040MESSAGE-    signed message
  12004. #>15    string    PGP\040SIGNATURE-    signature
  12005.  
  12006. 2    string    ---BEGIN\ PGP\ PUBLIC\ KEY\ BLOCK-    PGP public key block
  12007. !:mime    application/pgp-keys
  12008. 0    string    -----BEGIN\040PGP\40MESSAGE-        PGP message
  12009. !:mime    application/pgp
  12010. 0    string    -----BEGIN\040PGP\40SIGNATURE-        PGP signature
  12011. !:mime    application/pgp-signature
  12012.  
  12013. #------------------------------------------------------------------------------
  12014. # pkgadd:  file(1) magic for SysV R4 PKG Datastreams
  12015. #
  12016. 0       string          #\ PaCkAgE\ DaTaStReAm  pkg Datastream (SVR4)
  12017. !:mime    application/x-svr4-package
  12018.  
  12019. #------------------------------------------------------------------------------
  12020. # plan9:  file(1) magic for AT&T Bell Labs' Plan 9 executables
  12021. # From: "Stefan A. Haubenthal" <polluks@web.de>
  12022. #
  12023. 0    belong        0x00000107    Plan 9 executable, Motorola 68k
  12024. 0    belong        0x000001EB    Plan 9 executable, Intel 386
  12025. 0    belong        0x00000247    Plan 9 executable, Intel 960
  12026. 0    belong        0x000002AB    Plan 9 executable, SPARC
  12027. 0    belong        0x00000407    Plan 9 executable, MIPS R3000
  12028. 0    belong        0x0000048B    Plan 9 executable, AT&T DSP 3210
  12029. 0    belong        0x00000517    Plan 9 executable, MIPS R4000 BE
  12030. 0    belong        0x000005AB    Plan 9 executable, AMD 29000
  12031. 0    belong        0x00000647    Plan 9 executable, ARM 7-something
  12032. 0    belong        0x000006EB    Plan 9 executable, PowerPC
  12033. 0    belong        0x00000797    Plan 9 executable, MIPS R4000 LE
  12034. 0    belong        0x0000084B    Plan 9 executable, DEC Alpha
  12035.  
  12036. #------------------------------------------------------------------------------
  12037. # plus5:  file(1) magic for Plus Five's UNIX MUMPS
  12038. #
  12039. # XXX - byte order?  Paging Hokey....
  12040. #
  12041. 0    short        0x259        mumps avl global
  12042. >2    byte        >0        (V%d)
  12043. >6    byte        >0        with %d byte name
  12044. >7    byte        >0        and %d byte data cells
  12045. 0    short        0x25a        mumps blt global
  12046. >2    byte        >0        (V%d)
  12047. >8    short        >0        - %d byte blocks
  12048. >15    byte        0x00        - P/D format
  12049. >15    byte        0x01        - P/K/D format
  12050. >15    byte        0x02        - K/D format
  12051. >15    byte        >0x02        - Bad Flags
  12052.  
  12053. #------------------------------------------------------------------------------
  12054. # printer:  file(1) magic for printer-formatted files
  12055. #
  12056.  
  12057. # PostScript, updated by Daniel Quinlan (quinlan@yggdrasil.com)
  12058. 0    string        %!        PostScript document text
  12059. !:mime    application/postscript
  12060. !:apple    ASPSTEXT
  12061. >2    string        PS-Adobe-    conforming
  12062. >>11    string        >\0        DSC level %.3s
  12063. >>>15    string        EPS        \b, type %s
  12064. >>>15    string        Query        \b, type %s
  12065. >>>15    string        ExitServer    \b, type %s
  12066. >>>15   search/1000        %%LanguageLevel:\ 
  12067. >>>>&0    string        >\0        \b, Level %s
  12068. # Some PCs have the annoying habit of adding a ^D as a document separator
  12069. 0    string        \004%!        PostScript document text
  12070. !:mime    application/postscript
  12071. !:apple    ASPSTEXT
  12072. >3    string        PS-Adobe-    conforming
  12073. >>12    string        >\0        DSC level %.3s
  12074. >>>16    string        EPS        \b, type %s
  12075. >>>16    string        Query        \b, type %s
  12076. >>>16    string        ExitServer    \b, type %s
  12077. >>>16   search/1000        %%LanguageLevel:\ 
  12078. >>>>&0    string        >\0        \b, Level %s
  12079. 0    string        \033%-12345X%!PS    PostScript document
  12080.  
  12081. # DOS EPS Binary File Header
  12082. # From: Ed Sznyter <ews@Black.Market.NET>
  12083. 0       belong          0xC5D0D3C6      DOS EPS Binary File
  12084. >4      long            >0              Postscript starts at byte %d
  12085. >>8     long            >0              length %d
  12086. >>>12   long            >0              Metafile starts at byte %d
  12087. >>>>16  long            >0              length %d
  12088. >>>20   long            >0              TIFF starts at byte %d
  12089. >>>>24  long            >0              length %d
  12090.  
  12091. # Summary: Adobe's PostScript Printer Description File
  12092. # Extension: .ppd
  12093. # Reference: http://partners.adobe.com/public/developer/en/ps/5003.PPD_Spec_v4.3.pdf, Section 3.8
  12094. # Submitted by: Yves Arrouye <arrouye@marin.fdn.fr>
  12095. #
  12096. 0    string        *PPD-Adobe:\x20    PPD file
  12097. >&0    string        x        \b, version %s
  12098.  
  12099. # HP Printer Job Language
  12100. 0    string        \033%-12345X@PJL    HP Printer Job Language data
  12101. # HP Printer Job Language
  12102. # The header found on Win95 HP plot files is the "Silliest Thing possible" 
  12103. # (TM)
  12104. # Every driver puts the language at some random position, with random case
  12105. # (LANGUAGE and Language)
  12106. # For example the LaserJet 5L driver puts the "PJL ENTER LANGUAGE" in line 10
  12107. # From: Uwe Bonnes <bon@elektron.ikp.physik.th-darmstadt.de>
  12108. 0    string        \033%-12345X@PJL    HP Printer Job Language data
  12109. >&0    string        >\0            %s            
  12110. >>&0    string        >\0            %s            
  12111. >>>&0    string        >\0            %s        
  12112. >>>>&0    string        >\0            %s        
  12113. #>15    string        \ ENTER\ LANGUAGE\ =
  12114. #>31    string        PostScript        PostScript
  12115.  
  12116. # HP Printer Control Language, Daniel Quinlan (quinlan@yggdrasil.com)
  12117. 0    string        \033E\033    HP PCL printer data
  12118. >3    string        \&l0A        - default page size
  12119. >3    string        \&l1A        - US executive page size
  12120. >3    string        \&l2A        - US letter page size
  12121. >3    string        \&l3A        - US legal page size
  12122. >3    string        \&l26A        - A4 page size
  12123. >3    string        \&l80A        - Monarch envelope size
  12124. >3    string        \&l81A        - No. 10 envelope size
  12125. >3    string        \&l90A        - Intl. DL envelope size
  12126. >3    string        \&l91A        - Intl. C5 envelope size
  12127. >3    string        \&l100A        - Intl. B5 envelope size
  12128. >3    string        \&l-81A        - No. 10 envelope size (landscape)
  12129. >3    string        \&l-90A        - Intl. DL envelope size (landscape)
  12130.  
  12131. # IMAGEN printer-ready files:
  12132. 0    string    @document(        Imagen printer
  12133. # this only works if "language xxx" is first item in Imagen header.
  12134. >10    string    language\ impress    (imPRESS data)
  12135. >10    string    language\ daisy        (daisywheel text)
  12136. >10    string    language\ diablo    (daisywheel text)
  12137. >10    string    language\ printer    (line printer emulation)
  12138. >10    string    language\ tektronix    (Tektronix 4014 emulation)
  12139. # Add any other languages that your Imagen uses - remember
  12140. # to keep the word `text' if the file is human-readable.
  12141. # [GRR 950115:  missing "postscript" or "ultrascript" (whatever it was called)]
  12142. #
  12143. # Now magic for IMAGEN font files...
  12144. 0    string        Rast        RST-format raster font data
  12145. >45    string        >0        face %s
  12146. # From Jukka Ukkonen
  12147. 0    string        \033[K\002\0\0\017\033(a\001\0\001\033(g    Canon Bubble Jet BJC formatted data
  12148.  
  12149. # From <mike@flyn.org>
  12150. # These are the /etc/magic entries to decode data sent to an Epson printer.
  12151. 0       string          \x1B\x40\x1B\x28\x52\x08\x00\x00REMOTE1P        Epson Stylus Color 460 data
  12152.  
  12153.  
  12154. #------------------------------------------------------------------------------
  12155. # zenographics:  file(1) magic for Zenographics ZjStream printer data
  12156. # Rick Richardson  rickr@mn.rr.com
  12157. 0    string        JZJZ
  12158. >0x12    string        ZZ        Zenographics ZjStream printer data (big-endian)
  12159. 0    string        ZJZJ
  12160. >0x12    string        ZZ        Zenographics ZjStream printer data (little-endian)
  12161.  
  12162.  
  12163. #------------------------------------------------------------------------------
  12164. # Oak Technologies printer stream
  12165. # Rick Richardson <rickr@mn.rr.com>
  12166. 0       string          OAK
  12167. >0x07    byte        0
  12168. >0x0b    byte        0    Oak Technologies printer stream
  12169.  
  12170. # This would otherwise be recognized as PostScript - nick@debian.org
  12171. 0    string        %!VMF         SunClock's Vector Map Format data
  12172.  
  12173. #------------------------------------------------------------------------------
  12174. # HP LaserJet 1000 series downloadable firmware file
  12175. 0    string    \xbe\xefABCDEFGH    HP LaserJet 1000 series downloadable firmware   
  12176.  
  12177. # From: Paolo <oopla@users.sf.net>
  12178. # Epson ESC/Page, ESC/PageColor 
  12179. 0    string    \x1b\x01@EJL    Epson ESC/Page language printer data
  12180.  
  12181. #------------------------------------------------------------------------------
  12182. # project:  file(1) magic for Project management
  12183. # Magic strings for ftnchek project files. Alexander Mai
  12184. 0    string    FTNCHEK_\ P    project file for ftnchek
  12185. >10    string    1        version 2.7
  12186. >10    string    2        version 2.8 to 2.10
  12187. >10    string    3        version 2.11 or later
  12188.  
  12189. #------------------------------------------------------------------------------
  12190. # psdbms:  file(1) magic for psdatabase
  12191. #
  12192. 0    belong&0xff00ffff    0x56000000    ps database
  12193. >1    string    >\0    version %s
  12194. >4    string    >\0    from kernel %s
  12195. #------------------------------------------------------------------------------
  12196. # psion:  file(1) magic for Psion handhelds data
  12197. # from: Peter Breitenlohner <peb@mppmu.mpg.de>
  12198. #
  12199. 0    lelong        0x10000037    Psion Series 5
  12200. >4    lelong        0x10000039    font file
  12201. >4    lelong        0x1000003A    printer driver
  12202. >4    lelong        0x1000003B    clipboard
  12203. >4    lelong        0x10000042    multi-bitmap image
  12204. >4    lelong        0x1000006A    application information file
  12205. >4    lelong        0x1000006D
  12206. >>8    lelong        0x1000007D    sketch image
  12207. !:mime image/x-psion-sketch
  12208. >>8    lelong        0x1000007E    voice note
  12209. >>8    lelong        0x1000007F    word file
  12210. >>8    lelong        0x10000085    OPL program
  12211. >>8    lelong        0x10000088    sheet file
  12212. >>8    lelong        0x100001C4    EasyFax initialisation file
  12213. >4    lelong        0x10000073    OPO module
  12214. >4    lelong        0x10000074    OPL application
  12215. >4    lelong        0x1000008A    exported multi-bitmap image
  12216.  
  12217. 0    lelong        0x10000041    Psion Series 5 ROM multi-bitmap image
  12218.  
  12219. 0    lelong        0x10000050    Psion Series 5
  12220. >4    lelong        0x1000006D    database
  12221. >4    lelong        0x100000E4    ini file
  12222.  
  12223. 0    lelong        0x10000079    Psion Series 5 binary:
  12224. >4    lelong        0x00000000    DLL
  12225. >4    lelong        0x10000049    comms hardware library
  12226. >4    lelong        0x1000004A    comms protocol library
  12227. >4    lelong        0x1000005D    OPX
  12228. >4    lelong        0x1000006C    application
  12229. >4    lelong        0x1000008D    DLL
  12230. >4    lelong        0x100000AC    logical device driver
  12231. >4    lelong        0x100000AD    physical device driver
  12232. >4    lelong        0x100000E5    file transfer protocol
  12233. >4    lelong        0x100000E5    file transfer protocol
  12234. >4    lelong        0x10000140    printer definition
  12235. >4    lelong        0x10000141    printer definition
  12236.  
  12237. 0    lelong        0x1000007A    Psion Series 5 executable
  12238.  
  12239. #------------------------------------------------------------------------------
  12240. # pulsar:  file(1) magic for Pulsar POP3 daemon binary files
  12241. #
  12242. # http://pulsar.sourceforge.net
  12243. # mailto:rok.papez@lugos.si
  12244. #
  12245.  
  12246. 0    belong    0x1ee7f11e    Pulsar POP3 daemon mailbox cache file.
  12247. >4    ubelong    x        Version: %d.
  12248. >8    ubelong    x        \b%d
  12249.  
  12250.  
  12251. #------------------------------------------------------------------------------
  12252. # pyramid:  file(1) magic for Pyramids
  12253. #
  12254. # XXX - byte order?
  12255. #
  12256. 0    long        0x50900107    Pyramid 90x family executable
  12257. 0    long        0x50900108    Pyramid 90x family pure executable
  12258. >16    long        >0        not stripped
  12259. 0    long        0x5090010b    Pyramid 90x family demand paged pure executable
  12260. >16    long        >0        not stripped
  12261.  
  12262. #------------------------------------------------------------------------------
  12263. # python:  file(1) magic for python
  12264. #
  12265. # From: David Necas <yeti@physics.muni.cz>
  12266. # often the module starts with a multiline string
  12267. 0    string        """    a python script text executable
  12268. # MAGIC as specified in Python/import.c (1.5 to 2.3.0a)
  12269. # 20121  ( YEAR - 1995 ) + MONTH  + DAY (little endian followed by "\r\n"
  12270. 0    belong        0x994e0d0a    python 1.5/1.6 byte-compiled
  12271. 0    belong        0x87c60d0a    python 2.0 byte-compiled
  12272. 0    belong        0x2aeb0d0a    python 2.1 byte-compiled
  12273. 0    belong        0x2ded0d0a    python 2.2 byte-compiled
  12274. 0    belong        0x3bf20d0a    python 2.3 byte-compiled
  12275. 0    belong        0x6df20d0a    python 2.4 byte-compiled
  12276. 0    belong        0xb3f20d0a    python 2.5 byte-compiled
  12277. 0    belong        0xd1f20d0a    python 2.6 byte-compiled
  12278.  
  12279.  
  12280. 0    string/b  #!\ /usr/bin/python    python script text executable
  12281.  
  12282.  
  12283. #------------------------------------------------------------------------------
  12284. # file(1) magic for revision control files
  12285. # From Hendrik Scholz <hendrik@scholz.net>
  12286. 0    string    /1\ :pserver:    cvs password text file
  12287.  
  12288. # Conary changesets
  12289. # From: Jonathan Smith <smithj@rpath.com>
  12290. 0    belong    0xea3f81bb    Conary changeset data
  12291.  
  12292. # Type: Git bundles (git-bundle)
  12293. # From: Josh Triplett <josh@freedesktop.org>
  12294. 0    string    #\ v2\ git\ bundle\n    Git bundle
  12295.  
  12296. # Type: Git pack
  12297. # From: Adam Buchbinder <adam.buchbinder@gmail.com>
  12298. # The actual magic is 'PACK', but that clashes with Doom/Quake packs. However,
  12299. # those have a little-endian offset immediately following the magic 'PACK',
  12300. # the first byte of which is never 0, while the first byte of the Git pack
  12301. # version, since it's a tiny number stored in big-endian format, is always 0.
  12302. 0    string    PACK\0        Git pack
  12303. >4    belong    >0        \b, version %d
  12304. >>8    belong    >0        \b, %d objects
  12305.  
  12306. # Type: Git pack index
  12307. # From: Adam Buchbinder <adam.buchbinder@gmail.com>
  12308. 0    string    \377tOc        Git pack index
  12309. >4    belong    =2        \b, version 2
  12310.  
  12311. # Type:    Mercurial bundles
  12312. # From:    Seo Sanghyeon <tinuviel@sparcs.kaist.ac.kr>
  12313. 0    string    HG10        Mercurial bundle,
  12314. >4    string    UN        uncompressed
  12315. >4    string    BZ        bzip2 compressed
  12316.  
  12317. # Type:    Subversion (SVN) dumps
  12318. # From:    Uwe Zeisberger <zeisberg@informatik.uni-freiburg.de>
  12319. 0    string    SVN-fs-dump-format-version:    Subversion dumpfile
  12320. >28    string    >\0                (version: %s)
  12321.  
  12322. # Type:    Bazaar revision bundles and merge requests
  12323. # URL:    http://www.bazaar-vcs.org/
  12324. # From:    Jelmer Vernooij <jelmer@samba.org>
  12325. 0    string    #\ Bazaar\ revision\ bundle\ v Bazaar Bundle
  12326. 0    string    #\ Bazaar\ merge\ directive\ format Bazaar merge directive
  12327.  
  12328. #------------------------------------------------------------------------------
  12329. # riff:  file(1) magic for RIFF format
  12330. # See
  12331. #
  12332. #    http://www.seanet.com/users/matts/riffmci/riffmci.htm
  12333. #
  12334. # AVI section extended by Patrik Rσdman <patrik+file-magic@iki.fi>
  12335. #
  12336. 0    string        RIFF        RIFF (little-endian) data
  12337. # RIFF Palette format
  12338. >8    string        PAL        \b, palette
  12339. >>16    leshort        x        \b, version %d
  12340. >>18    leshort        x        \b, %d entries
  12341. # RIFF Device Independent Bitmap format
  12342. >8    string        RDIB        \b, device-independent bitmap
  12343. >>16    string        BM        
  12344. >>>30    leshort        12        \b, OS/2 1.x format
  12345. >>>>34    leshort        x        \b, %d x
  12346. >>>>36    leshort        x        %d
  12347. >>>30    leshort        64        \b, OS/2 2.x format
  12348. >>>>34    leshort        x        \b, %d x
  12349. >>>>36    leshort        x        %d
  12350. >>>30    leshort        40        \b, Windows 3.x format
  12351. >>>>34    lelong        x        \b, %d x
  12352. >>>>38    lelong        x        %d x
  12353. >>>>44    leshort        x        %d
  12354. # RIFF MIDI format
  12355. >8    string        RMID        \b, MIDI
  12356. # RIFF Multimedia Movie File format
  12357. >8    string        RMMP        \b, multimedia movie
  12358. # RIFF wrapper for MP3
  12359. >8    string        RMP3        \b, MPEG Layer 3 audio
  12360. # Microsoft WAVE format (*.wav)
  12361. >8    string        WAVE        \b, WAVE audio
  12362. !:mime    audio/x-wav
  12363. >>20    leshort        1        \b, Microsoft PCM
  12364. >>>34    leshort        >0        \b, %d bit
  12365. >>20    leshort        2        \b, Microsoft ADPCM
  12366. >>20    leshort        6        \b, ITU G.711 A-law
  12367. >>20    leshort        7        \b, ITU G.711 mu-law
  12368. >>20    leshort        8        \b, Microsoft DTS
  12369. >>20    leshort        17        \b, IMA ADPCM
  12370. >>20    leshort        20        \b, ITU G.723 ADPCM (Yamaha)
  12371. >>20    leshort        49        \b, GSM 6.10
  12372. >>20    leshort        64        \b, ITU G.721 ADPCM
  12373. >>20    leshort        80        \b, MPEG
  12374. >>20    leshort        85        \b, MPEG Layer 3
  12375. >>20    leshort        0x2001        \b, DTS
  12376. >>22    leshort        =1        \b, mono
  12377. >>22    leshort        =2        \b, stereo
  12378. >>22    leshort        >2        \b, %d channels
  12379. >>24    lelong        >0        %d Hz
  12380. # Corel Draw Picture
  12381. >8    string        CDRA        \b, Corel Draw Picture
  12382. !:mime    image/x-coreldraw
  12383. # AVI == Audio Video Interleave
  12384. >8    string        AVI\040        \b, AVI
  12385. !:mime    video/x-msvideo
  12386. >>12    string          LIST
  12387. >>>20   string          hdrlavih
  12388. >>>>&36 lelong          x               \b, %lu x
  12389. >>>>&40 lelong          x               %lu,
  12390. >>>>&4  lelong          >1000000        <1 fps,
  12391. >>>>&4  lelong          1000000         1.00 fps,
  12392. >>>>&4  lelong          500000          2.00 fps,
  12393. >>>>&4  lelong          333333          3.00 fps,
  12394. >>>>&4  lelong          250000          4.00 fps,
  12395. >>>>&4  lelong          200000          5.00 fps,
  12396. >>>>&4  lelong          166667          6.00 fps,
  12397. >>>>&4  lelong          142857          7.00 fps,
  12398. >>>>&4  lelong          125000          8.00 fps,
  12399. >>>>&4  lelong          111111          9.00 fps,
  12400. >>>>&4  lelong          100000          10.00 fps,
  12401. # ]9.9,10.1[
  12402. >>>>&4  lelong          <101010
  12403. >>>>>&-4        lelong  >99010
  12404. >>>>>>&-4       lelong  !100000         ~10 fps,
  12405. >>>>&4  lelong          83333           12.00 fps,
  12406. # ]11.9,12.1[
  12407. >>>>&4  lelong          <84034
  12408. >>>>>&-4        lelong  >82645
  12409. >>>>>>&-4       lelong  !83333          ~12 fps,
  12410. >>>>&4  lelong          66667           15.00 fps,
  12411. # ]14.9,15.1[
  12412. >>>>&4  lelong          <67114
  12413. >>>>>&-4        lelong  >66225
  12414. >>>>>>&-4       lelong  !66667          ~15 fps,
  12415. >>>>&4  lelong          50000           20.00 fps,
  12416. >>>>&4  lelong          41708           23.98 fps,
  12417. >>>>&4  lelong          41667           24.00 fps,
  12418. # ]23.9,24.1[
  12419. >>>>&4  lelong          <41841
  12420. >>>>>&-4        lelong  >41494
  12421. >>>>>>&-4       lelong  !41708
  12422. >>>>>>>&-4      lelong  !41667          ~24 fps,
  12423. >>>>&4  lelong          40000           25.00 fps,
  12424. # ]24.9,25.1[
  12425. >>>>&4  lelong          <40161
  12426. >>>>>&-4        lelong  >39841
  12427. >>>>>>&-4       lelong  !40000          ~25 fps,
  12428. >>>>&4  lelong          33367           29.97 fps,
  12429. >>>>&4  lelong          33333           30.00 fps,
  12430. # ]29.9,30.1[
  12431. >>>>&4  lelong          <33445
  12432. >>>>>&-4        lelong  >33223
  12433. >>>>>>&-4       lelong  !33367
  12434. >>>>>>>&-4      lelong  !33333          ~30 fps,
  12435. >>>>&4  lelong          <32224          >30 fps,
  12436. ##>>>>&4  lelong          x               (%lu)
  12437. ##>>>>&20 lelong          x               %lu frames,
  12438. # Note: The tests below assume that the AVI has 1 or 2 streams,
  12439. #       "vids" optionally followed by "auds".
  12440. #       (Should cover 99.9% of all AVIs.)
  12441. # assuming avih length = 56
  12442. >>>88   string  LIST
  12443. >>>>96  string  strlstrh
  12444. >>>>>108        string  vids    video:
  12445. >>>>>>&0        lelong  0               uncompressed
  12446. # skip past vids strh
  12447. >>>>>>(104.l+108)       string  strf
  12448. >>>>>>>(104.l+132)      lelong          1       RLE 8bpp
  12449. >>>>>>>(104.l+132)      string/c        cvid    Cinepak
  12450. >>>>>>>(104.l+132)      string/c        i263    Intel I.263
  12451. >>>>>>>(104.l+132)      string/c        iv32    Indeo 3.2
  12452. >>>>>>>(104.l+132)      string/c        iv41    Indeo 4.1
  12453. >>>>>>>(104.l+132)      string/c        iv50    Indeo 5.0
  12454. >>>>>>>(104.l+132)      string/c        mp42    Microsoft MPEG-4 v2
  12455. >>>>>>>(104.l+132)      string/c        mp43    Microsoft MPEG-4 v3
  12456. >>>>>>>(104.l+132)      string/c        fmp4    FFMpeg MPEG-4
  12457. >>>>>>>(104.l+132)      string/c        mjpg    Motion JPEG
  12458. >>>>>>>(104.l+132)      string/c        div3    DivX 3
  12459. >>>>>>>>112             string/c        div3    Low-Motion
  12460. >>>>>>>>112             string/c        div4    Fast-Motion
  12461. >>>>>>>(104.l+132)      string/c        divx    DivX 4
  12462. >>>>>>>(104.l+132)      string/c        dx50    DivX 5
  12463. >>>>>>>(104.l+132)      string/c        xvid    XviD
  12464. >>>>>>>(104.l+132)    string/c    h264    H.264
  12465. >>>>>>>(104.l+132)      string/c        wmv3    Windows Media Video 9
  12466. >>>>>>>(104.l+132)      string/c        h264    X.264 or H.264
  12467. >>>>>>>(104.l+132)      lelong  0
  12468. ##>>>>>>>(104.l+132)      string  x       (%.4s)
  12469. # skip past first (video) LIST
  12470. >>>>(92.l+96)   string  LIST
  12471. >>>>>(92.l+104) string  strlstrh
  12472. >>>>>>(92.l+116)        string          auds    \b, audio:
  12473. # auds strh length = 56:
  12474. >>>>>>>(92.l+172)       string          strf
  12475. >>>>>>>>(92.l+180)      leshort 0x0001  uncompressed PCM
  12476. >>>>>>>>(92.l+180)      leshort 0x0002  ADPCM
  12477. >>>>>>>>(92.l+180)      leshort 0x0006  aLaw
  12478. >>>>>>>>(92.l+180)      leshort 0x0007  uLaw
  12479. >>>>>>>>(92.l+180)      leshort 0x0050  MPEG-1 Layer 1 or 2
  12480. >>>>>>>>(92.l+180)      leshort 0x0055  MPEG-1 Layer 3
  12481. >>>>>>>>(92.l+180)      leshort 0x2000  Dolby AC3
  12482. >>>>>>>>(92.l+180)      leshort 0x0161  DivX
  12483. ##>>>>>>>>(92.l+180)      leshort x       (0x%.4x)
  12484. >>>>>>>>(92.l+182)      leshort 1       (mono,
  12485. >>>>>>>>(92.l+182)      leshort 2       (stereo,
  12486. >>>>>>>>(92.l+182)      leshort >2      (%d channels,
  12487. >>>>>>>>(92.l+184)      lelong  x       %d Hz)
  12488. # auds strh length = 64:
  12489. >>>>>>>(92.l+180)       string          strf
  12490. >>>>>>>>(92.l+188)      leshort 0x0001  uncompressed PCM
  12491. >>>>>>>>(92.l+188)      leshort 0x0002  ADPCM
  12492. >>>>>>>>(92.l+188)      leshort 0x0055  MPEG-1 Layer 3
  12493. >>>>>>>>(92.l+188)      leshort 0x2000  Dolby AC3
  12494. >>>>>>>>(92.l+188)      leshort 0x0161  DivX
  12495. ##>>>>>>>>(92.l+188)      leshort x       (0x%.4x)
  12496. >>>>>>>>(92.l+190)      leshort 1       (mono,
  12497. >>>>>>>>(92.l+190)      leshort 2       (stereo,
  12498. >>>>>>>>(92.l+190)      leshort >2      (%d channels,
  12499. >>>>>>>>(92.l+192)      lelong  x       %d Hz)
  12500. # Animated Cursor format
  12501. >8    string        ACON        \b, animated cursor
  12502. # SoundFont 2 <mpruett@sgi.com>
  12503. >8    string        sfbk        SoundFont/Bank
  12504. # MPEG-1 wrapped in a RIFF, apparently
  12505. >8      string          CDXA            \b, wrapped MPEG-1 (CDXA)
  12506. >8    string        4XMV        \b, 4X Movie file 
  12507.  
  12508. #
  12509. # XXX - some of the below may only appear in little-endian form.
  12510. #
  12511. # Also "MV93" appears to be for one form of Macromedia Director
  12512. # files, and "GDMF" appears to be another multimedia format.
  12513. #
  12514. 0    string        RIFX        RIFF (big-endian) data
  12515. # RIFF Palette format
  12516. >8    string        PAL        \b, palette
  12517. >>16    beshort        x        \b, version %d
  12518. >>18    beshort        x        \b, %d entries
  12519. # RIFF Device Independent Bitmap format
  12520. >8    string        RDIB        \b, device-independent bitmap
  12521. >>16    string        BM        
  12522. >>>30    beshort        12        \b, OS/2 1.x format
  12523. >>>>34    beshort        x        \b, %d x
  12524. >>>>36    beshort        x        %d
  12525. >>>30    beshort        64        \b, OS/2 2.x format
  12526. >>>>34    beshort        x        \b, %d x
  12527. >>>>36    beshort        x        %d
  12528. >>>30    beshort        40        \b, Windows 3.x format
  12529. >>>>34    belong        x        \b, %d x
  12530. >>>>38    belong        x        %d x
  12531. >>>>44    beshort        x        %d
  12532. # RIFF MIDI format
  12533. >8    string        RMID        \b, MIDI
  12534. # RIFF Multimedia Movie File format
  12535. >8    string        RMMP        \b, multimedia movie
  12536. # Microsoft WAVE format (*.wav)
  12537. >8    string        WAVE        \b, WAVE audio
  12538. >>20    leshort        1        \b, Microsoft PCM
  12539. >>>34    leshort        >0        \b, %d bit
  12540. >>22    beshort        =1        \b, mono
  12541. >>22    beshort        =2        \b, stereo
  12542. >>22    beshort        >2        \b, %d channels
  12543. >>24    belong        >0        %d Hz
  12544. # Corel Draw Picture
  12545. >8    string        CDRA        \b, Corel Draw Picture
  12546. # AVI == Audio Video Interleave
  12547. >8    string        AVI\040        \b, AVI
  12548. # Animated Cursor format
  12549. >8    string        ACON        \b, animated cursor
  12550. # Notation Interchange File Format (big-endian only)
  12551. >8    string        NIFF        \b, Notation Interchange File Format
  12552. # SoundFont 2 <mpruett@sgi.com>
  12553. >8    string        sfbk        SoundFont/Bank
  12554. #------------------------------------------------------------------------------
  12555. #
  12556. # RPM: file(1) magic for Red Hat Packages   Erik Troan (ewt@redhat.com)
  12557. #
  12558. 0    beshort        0xedab
  12559. >2    beshort        0xeedb        RPM
  12560. !:mime    application/x-rpm
  12561. >>4    byte        x        v%d
  12562. >>6    beshort        0        bin
  12563. >>6    beshort        1        src
  12564. >>8    beshort        1        i386
  12565. >>8    beshort        2        Alpha
  12566. >>8    beshort        3        Sparc
  12567. >>8    beshort        4        MIPS
  12568. >>8    beshort        5        PowerPC
  12569. >>8    beshort        6        68000
  12570. >>8    beshort        7        SGI
  12571. >>8    beshort        8        RS6000
  12572. >>8    beshort        9        IA64
  12573. >>8    beshort        10        Sparc64
  12574. >>8    beshort        11        MIPSel
  12575. >>8    beshort        12        ARM
  12576. >>10    string        x        %s
  12577.  
  12578. #------------------------------------------------------------------------------
  12579. # rtf:    file(1) magic for Rich Text Format (RTF)
  12580. #
  12581. # Duncan P. Simpson, D.P.Simpson@dcs.warwick.ac.uk
  12582. #
  12583. 0    string        {\\rtf        Rich Text Format data,
  12584. !:mime    text/rtf
  12585. >5    string        1        version 1,
  12586. >>6    string        \\ansi        ANSI
  12587. >>6    string        \\mac        Apple Macintosh
  12588. >>6    string        \\pc        IBM PC, code page 437
  12589. >>6    string        \\pca        IBM PS/2, code page 850
  12590. >>6    default        x        unknown character set
  12591. >5    default        x        unknown version
  12592. #------------------------------------------------------------------------------
  12593. # ruby:  file(1) magic for Lua scripting language
  12594. # URL:  http://www.ruby-lang.org/
  12595. # From: Reuben Thomas <rrt@sc3d.org>
  12596.  
  12597. # Ruby scripts
  12598. 0    search/1/b    #!\ /usr/bin/ruby    Ruby script text executable
  12599. !:mime    application/x-ruby
  12600. 0    search/1/b    #!\ /usr/local/bin/ruby    Ruby script text executable
  12601. !:mime    application/x-ruby
  12602. 0    search/1    #!/usr/bin/env\ ruby    Ruby script text executable
  12603. !:mime    application/x-ruby
  12604. 0    search/1    #!\ /usr/bin/env\ ruby    Ruby script text executable
  12605. !:mime    application/x-ruby
  12606.  
  12607. #------------------------------------------------------------------------------
  12608. # sc:  file(1) magic for "sc" spreadsheet
  12609. #
  12610. 38    string        Spreadsheet    sc spreadsheet file
  12611. !:mime    application/x-sc
  12612.  
  12613. #------------------------------------------------------------------------------
  12614. # sccs:  file(1) magic for SCCS archives
  12615. #
  12616. # SCCS archive structure:
  12617. # \001h01207
  12618. # \001s 00276/00000/00000
  12619. # \001d D 1.1 87/09/23 08:09:20 ian 1 0
  12620. # \001c date and time created 87/09/23 08:09:20 by ian
  12621. # \001e
  12622. # \001u
  12623. # \001U
  12624. # ... etc.
  12625. # Now '\001h' happens to be the same as the 3B20's a.out magic number (0550).
  12626. # *Sigh*. And these both came from various parts of the USG.
  12627. # Maybe we should just switch everybody from SCCS to RCS!
  12628. # Further, you can't just say '\001h0', because the five-digit number
  12629. # is a checksum that could (presumably) have any leading digit,
  12630. # and we don't have regular expression matching yet. 
  12631. # Hence the following official kludge:
  12632. 8    string        \001s\             SCCS archive data
  12633. #------------------------------------------------------------------------------
  12634. # scientific:  file(1) magic for scientific formats 
  12635. #
  12636. # From: Joe Krahn <krahn@niehs.nih.gov>
  12637.  
  12638. ########################################################
  12639. # CCP4 data and plot files:
  12640. 0    string        MTZ\040        MTZ reflection file
  12641.  
  12642. 92    string        PLOT%%84    Plot84 plotting file
  12643. >52    byte        1        , Little-endian
  12644. >55    byte        1        , Big-endian
  12645.  
  12646. ########################################################
  12647. # Electron density MAP/MASK formats
  12648.  
  12649. 0    string        EZD_MAP    NEWEZD Electron Density Map
  12650. 109    string        MAP\040(  Old EZD Electron Density Map
  12651.  
  12652. 0    string/c    :-)\040Origin    BRIX Electron Density Map
  12653. >170    string        >0    , Sigma:%.12s
  12654. #>4    string        >0    %.178s
  12655. #>4    addr        x    %.178s
  12656.  
  12657. 7    string        18\040!NTITLE    XPLOR ASCII Electron Density Map
  12658. 9    string        \040!NTITLE\012\040REMARK    CNS ASCII electron density map
  12659.  
  12660. 208    string        MAP\040    CCP4 Electron Density Map
  12661. # Assumes same stamp for float and double (normal case)
  12662. >212    byte        17    \b, Big-endian
  12663. >212    byte        34    \b, VAX format
  12664. >212    byte        68    \b, Little-endian
  12665. >212    byte        85    \b, Convex native
  12666.  
  12667. ############################################################
  12668. # X-Ray Area Detector images
  12669. 0    string    R-AXIS4\ \ \     R-Axis Area Detector Image:
  12670. >796    lelong    <20        Little-endian, IP #%d,
  12671. >>768    lelong    >0        Size=%dx
  12672. >>772    lelong    >0        \b%d
  12673. >796    belong    <20        Big-endian, IP #%d,
  12674. >>768    belong    >0        Size=%dx
  12675. >>772    belong    >0        \b%d
  12676.  
  12677. 0    string    RAXIS\ \ \ \ \     R-Axis Area Detector Image, Win32:
  12678. >796    lelong    <20        Little-endian, IP #%d,
  12679. >>768    lelong    >0        Size=%dx
  12680. >>772    lelong    >0        \b%d
  12681. >796    belong    <20        Big-endian, IP #%d,
  12682. >>768    belong    >0        Size=%dx
  12683. >>772    belong    >0        \b%d
  12684.  
  12685.  
  12686. 1028    string    MMX\000\000\000\000\000\000\000\000\000\000\000\000\000    MAR Area Detector Image,
  12687. >1072    ulong    >1        Compressed(%d),
  12688. >1100    ulong    >1        %d headers,
  12689. >1104    ulong    >0        %d x
  12690. >1108    ulong    >0        %d,
  12691. >1120    ulong    >0        %d bits/pixel
  12692.  
  12693. # Type: GEDCOM genealogical (family history) data
  12694. # From: Giuseppe Bilotta
  12695. 0       search/1/c    0\ HEAD         GEDCOM genealogy text
  12696. >&0     search        1\ GEDC
  12697. >>&0    search        2\ VERS         version
  12698. >>>&1   search/1    >\0        %s
  12699. # From: Phil Endecott <phil05@chezphil.org>
  12700. 0    string    \000\060\000\040\000\110\000\105\000\101\000\104        GEDCOM data
  12701. 0    string    \060\000\040\000\110\000\105\000\101\000\104\000        GEDCOM data
  12702. 0    string    \376\377\000\060\000\040\000\110\000\105\000\101\000\104    GEDCOM data
  12703. 0    string    \377\376\060\000\040\000\110\000\105\000\101\000\104\000    GEDCOM data
  12704. 0    search/1        -----BEGIN\ CERTIFICATE------    RFC1421 Security Certificate text
  12705. 0    search/1        -----BEGIN\ NEW\ CERTIFICATE    RFC1421 Security Certificate Signing Request text
  12706. 0    belong    0xedfeedfe    Sun 'jks' Java Keystore File data
  12707. # Type:    SE Linux policy modules *.pp reference policy
  12708. #    for Fedora 5 to 9, RHEL5, and Debian Etch and Lenny.
  12709. # URL:    http://doc.coker.com.au/computers/selinux-magic
  12710. # From:    Russell Coker <russell@coker.com.au>
  12711.  
  12712. 0        lelong    0xf97cff8f    SE Linux modular policy
  12713. >4        lelong    x        version %d,
  12714. >8        lelong    x        %d sections,
  12715. >>(12.l)    lelong    0xf97cff8d
  12716. >>>(12.l+27)    lelong    x        mod version %d,
  12717. >>>(12.l+31)    lelong    0        Not MLS,
  12718. >>>(12.l+31)    lelong    1        MLS,
  12719. >>>(12.l+23)    lelong    2
  12720. >>>>(12.l+47)    string    >\0        module name %s
  12721. >>>(12.l+23)    lelong    1        base
  12722.  
  12723. 1    string    policy_module(    SE Linux policy module source
  12724. 2    string    policy_module(    SE Linux policy module source
  12725.  
  12726. 0    string    ##\ <summary>    SE Linux policy interface source
  12727.  
  12728. #0    search    gen_context(    SE Linux policy file contexts
  12729.  
  12730. #0    search    gen_sens(    SE Linux policy MLS constraints source
  12731.  
  12732. #------------------------------------------------------------------------------
  12733. # sendmail:  file(1) magic for sendmail config files
  12734. #
  12735. # XXX - byte order?
  12736. #
  12737. 0    byte    046      Sendmail frozen configuration 
  12738. >16    string    >\0      - version %s
  12739. 0    short    0x271c      Sendmail frozen configuration
  12740. >16    string    >\0      - version %s
  12741.  
  12742. #------------------------------------------------------------------------------
  12743. # sendmail:  file(1) magic for sendmail m4(1) files
  12744. #
  12745. # From Hendrik Scholz <hendrik@scholz.net>
  12746. # i.e. files in /usr/share/sendmail/cf/
  12747. #
  12748. 0   string  divert(-1)\n    sendmail m4 text file
  12749.  
  12750.  
  12751. #------------------------------------------------------------------------------
  12752. # sequent:  file(1) magic for Sequent machines
  12753. #
  12754. # Sequent information updated by Don Dwiggins <atsun!dwiggins>.
  12755. # For Sequent's multiprocessor systems (incomplete).
  12756. 0    lelong    0x00ea            BALANCE NS32000 .o
  12757. >16    lelong    >0        not stripped
  12758. >124    lelong    >0        version %ld
  12759. 0    lelong    0x10ea            BALANCE NS32000 executable (0 @ 0)
  12760. >16    lelong  >0                not stripped
  12761. >124    lelong    >0        version %ld
  12762. 0    lelong    0x20ea            BALANCE NS32000 executable (invalid @ 0)
  12763. >16    lelong  >0                not stripped
  12764. >124    lelong    >0        version %ld
  12765. 0    lelong    0x30ea            BALANCE NS32000 standalone executable
  12766. >16    lelong  >0              not stripped
  12767. >124    lelong    >0        version %ld
  12768. #
  12769. # Symmetry information added by Jason Merrill <jason@jarthur.claremont.edu>.
  12770. # Symmetry magic nums will not be reached if DOS COM comes before them;
  12771. # byte 0xeb is matched before these get a chance.
  12772. 0    leshort    0x12eb        SYMMETRY i386 .o
  12773. >16    lelong    >0        not stripped
  12774. >124    lelong    >0        version %ld
  12775. 0    leshort    0x22eb        SYMMETRY i386 executable (0 @ 0)
  12776. >16    lelong    >0        not stripped
  12777. >124    lelong    >0        version %ld
  12778. 0    leshort    0x32eb        SYMMETRY i386 executable (invalid @ 0)
  12779. >16    lelong    >0        not stripped
  12780. >124    lelong    >0        version %ld
  12781. 0    leshort    0x42eb        SYMMETRY i386 standalone executable
  12782. >16    lelong    >0        not stripped
  12783. >124    lelong    >0        version %ld
  12784.  
  12785. #------------------------------------------------------------------------------
  12786. # sgi:  file(1) magic for Silicon Graphics applications
  12787.  
  12788. #
  12789. #
  12790. # Performance Co-Pilot file types
  12791. 0    string    PmNs                PCP compiled namespace (V.0)
  12792. 0    string    PmN                PCP compiled namespace
  12793. >3    string    >\0                (V.%1.1s)
  12794. #3    lelong    0x84500526            PCP archive
  12795. 3    belong    0x84500526            PCP archive
  12796. >7    byte    x                (V.%d)
  12797. #>20    lelong    -2                temporal index
  12798. #>20    lelong    -1                metadata
  12799. #>20    lelong    0                log volume #0
  12800. #>20    lelong    >0                log volume #%ld
  12801. >20    belong    -2                temporal index
  12802. >20    belong    -1                metadata
  12803. >20    belong    0                log volume #0
  12804. >20    belong    >0                log volume #%ld
  12805. >24    string    >\0                host: %s
  12806. 0    string    PCPFolio            PCP
  12807. >9    string    Version:            Archive Folio
  12808. >18    string    >\0                (V.%s)
  12809. 0    string    #pmchart            PCP pmchart view
  12810. >9    string    Version
  12811. >17    string    >\0                (V%-3.3s)
  12812. 0    string    #kmchart            PCP kmchart view
  12813. >9    string    Version
  12814. >17    string    >\0                (V.%s)
  12815. 0    string    pmview                PCP pmview config
  12816. >7    string    Version
  12817. >15    string    >\0                (V%-3.3s)
  12818. 0    string    #pmlogger            PCP pmlogger config
  12819. >10    string    Version
  12820. >18    string    >\0                (V%1.1s)
  12821. 0    string    #pmdahotproc            PCP pmdahotproc config
  12822. >13    string    Version
  12823. >21    string    >\0                (V%-3.3s)
  12824. 0    string    PcPh                PCP Help
  12825. >4    string    1                Index
  12826. >4    string    2                Text
  12827. >5    string    >\0                (V.%1.1s)
  12828. 0    string    #pmieconf-rules            PCP pmieconf rules
  12829. >16    string    >\0                (V.%1.1s)
  12830. 3    string    pmieconf-pmie            PCP pmie config
  12831. >17    string    >\0                (V.%1.1s)
  12832.  
  12833. # SpeedShop data files
  12834. 0    lelong    0x13130303            SpeedShop data file
  12835.  
  12836. # mdbm files
  12837. 0    lelong    0x01023962            mdbm file, version 0 (obsolete)
  12838. 0    string    mdbm                mdbm file,
  12839. >5    byte    x                version %d,
  12840. >6    byte    x                2^%d pages,
  12841. >7    byte    x                pagesize 2^%d,
  12842. >17    byte    x                hash %d,
  12843. >11    byte    x                dataformat %d
  12844.  
  12845. # Alias Maya files
  12846. 0    string    //Maya ASCII    Alias Maya Ascii File,
  12847. >13    string    >\0    version %s
  12848. 8    string    MAYAFOR4    Alias Maya Binary File,
  12849. >32    string    >\0    version %s scene
  12850. 8    string    MayaFOR4    Alias Maya Binary File,
  12851. >32    string    >\0    version %s scene
  12852. 8    string    CIMG        Alias Maya Image File
  12853. 8    string    DEEP        Alias Maya Image File
  12854. #------------------------------------------------------------------------------
  12855. # Type:    SVG Vectorial Graphics
  12856. # From:    Noel Torres <tecnico@ejerciciosresueltos.com>
  12857. 0    string        \<?xml\ version="
  12858. >15    string        >\0
  12859. >>23    search/400    \<svg            SVG Scalable Vector Graphics image
  12860. !:mime    image/svg+xml
  12861. >>23    search/400    \<gnc-v2        GnuCash file
  12862. !:mime    application/x-gnucash
  12863.  
  12864. # Sitemap file
  12865. 0    string        \<?xml\ version="
  12866. >15    string        >\0
  12867. >>23    search/400    \<urlset        XML Sitemap document text
  12868. !:mime    application/xml-sitemap
  12869.  
  12870. #------------------------------------------------------------------------------
  12871. # sgml:  file(1) magic for Standard Generalized Markup Language
  12872. # HyperText Markup Language (HTML) is an SGML document type,
  12873. # from Daniel Quinlan (quinlan@yggdrasil.com)
  12874. # adapted to string extenstions by Anthon van der Neut <anthon@mnt.org)
  12875. 0    search/1/cB    \<!doctype\ html    HTML document text
  12876. !:mime    text/html
  12877. 0    search/1/cb    \<head            HTML document text
  12878. !:mime    text/html
  12879. 0    search/1/cb    \<title            HTML document text
  12880. !:mime    text/html
  12881. 0    search/1/cb    \<html            HTML document text
  12882. !:mime    text/html
  12883.  
  12884. # Extensible markup language (XML), a subset of SGML
  12885. # from Marc Prud'hommeaux (marc@apocalypse.org)
  12886. 0    search/1/cb    \<?xml            XML document text
  12887. !:mime    application/xml
  12888. 0    string        \<?xml\ version\ "    XML
  12889. !:mime    application/xml
  12890. 0    string        \<?xml\ version="    XML
  12891. !:mime    application/xml
  12892. >15    search/1    >\0            %.3s document text
  12893. >>23    search/1    \<xsl:stylesheet    (XSL stylesheet)
  12894. >>24    search/1    \<xsl:stylesheet    (XSL stylesheet)
  12895. 0    string        \<?xml\ version='    XML
  12896. !:mime    application/xml
  12897. >15    search/1    >\0            %.3s document text
  12898. >>23    search/1    \<xsl:stylesheet    (XSL stylesheet)
  12899. >>24    search/1    \<xsl:stylesheet    (XSL stylesheet)
  12900. 0    search/1/b    \<?xml            XML document text
  12901. !:mime    application/xml
  12902. 0    search/1/b    \<?XML            broken XML document text
  12903. !:mime    application/xml
  12904.  
  12905.  
  12906. # SGML, mostly from rph@sq
  12907. 0    search/1/cb    \<!doctype        exported SGML document text
  12908. 0    search/1/cb    \<!subdoc        exported SGML subdocument text
  12909. 0    search/1/cb    \<!--            exported SGML document text
  12910.  
  12911. # Web browser cookie files
  12912. # (Mozilla, Galeon, Netscape 4, Konqueror..)
  12913. # Ulf Harnhammar <ulfh@update.uu.se>
  12914. 0    search/1    #\ HTTP\ Cookie\ File    Web browser cookie text
  12915. 0    search/1    #\ Netscape\ HTTP\ Cookie\ File    Netscape cookie text
  12916. 0    search/1    #\ KDE\ Cookie\ File    Konqueror cookie text
  12917.  
  12918. #------------------------------------------------------------------------
  12919. # file(1) magic for sharc files
  12920. #
  12921. # SHARC DSP, MIDI SysEx and RiscOS filetype definitions added by 
  12922. # FutureGroove Music (dsp@futuregroove.de)
  12923.  
  12924. #------------------------------------------------------------------------
  12925. #0    string            Draw        RiscOS Drawfile
  12926. #0    string            PACK        RiscOS PackdDir archive
  12927.  
  12928. #------------------------------------------------------------------------
  12929. # SHARC DSP stuff (based on the FGM SHARC DSP SDK)
  12930.  
  12931. #0    string            =!        Assembler source
  12932. #0    string            Analog        ADi asm listing file
  12933. 0    string            .SYSTEM        SHARC architecture file
  12934. 0    string            .system        SHARC architecture file
  12935.  
  12936. 0    leshort            0x521C        SHARC COFF binary
  12937. >2    leshort            >1        , %hd sections
  12938. >>12    lelong            >0        , not stripped
  12939.  
  12940. #------------------------------------------------------------------------------
  12941. # sinclair:  file(1) sinclair QL
  12942.  
  12943. # additions to /etc/magic by Thomas M. Ott (ThMO)
  12944.  
  12945. # Sinclair QL floppy disk formats (ThMO)
  12946. 0    string    =QL5        QL disk dump data,
  12947. >3    string    =A        720 KB,
  12948. >3    string    =B        1.44 MB,
  12949. >3    string    =C        3.2 MB,
  12950. >4    string    >\0        label:%.10s
  12951.  
  12952. # Sinclair QL OS dump (ThMO)
  12953. # (NOTE: if `file' would be able to use indirect references in a endian format
  12954. #     differing from the natural host format, this could be written more
  12955. #     reliably and faster...)
  12956. #
  12957. # we *can't* lookup QL OS code dumps, because `file' is UNABLE to read more
  12958. # than the first 8K of a file... #-(
  12959. #
  12960. #0        belong    =0x30000
  12961. #>49124        belong    <47104
  12962. #>>49128        belong    <47104
  12963. #>>>49132    belong    <47104
  12964. #>>>>49136    belong    <47104    QL OS dump data,
  12965. #>>>>>49148    string    >\0    type %.3s,
  12966. #>>>>>49142    string    >\0    version %.4s
  12967.  
  12968. # Sinclair QL firmware executables (ThMO)
  12969. 0    string    NqNqNq`\004    QL firmware executable (BCPL)
  12970.  
  12971. # Sinclair QL libraries (was ThMO)
  12972. 0    beshort    0xFB01        QDOS object
  12973. >2    pstring    x        '%s'
  12974.  
  12975. # Sinclair QL executables (was ThMO)
  12976. 4    belong    0x4AFB        QDOS executable
  12977. >9    pstring    x        '%s'
  12978.  
  12979. # Sinclair QL ROM (ThMO)
  12980. 0    belong    =0x4AFB0001    QL plugin-ROM data,
  12981. >9    pstring    =\0        un-named
  12982. >9    pstring    >\0        named: %s
  12983. # Type: SiSU Markup Language
  12984. # URL:  http://www.sisudoc.org/
  12985. # From: Ralph Amissah <ralph.amissah@gmail.com>
  12986.  
  12987. 0    regex    \^%?[\ \t]*SiSU[\ \t]+insert    SiSU text insert
  12988. >5    regex    [0-9.]+                %s
  12989.  
  12990. 0    regex    \^%[\ \t]+SiSU[\ \t]+master    SiSU text master
  12991. >5    regex    [0-9.]+                %s
  12992.  
  12993. 0    regex    \^%?[\ \t]*SiSU[\ \t]+text    SiSU text
  12994. >5    regex    [0-9.]+                %s
  12995.  
  12996. 0    regex    \^%?[\ \t]*SiSU[\ \t][0-9.]+    SiSU text
  12997. >5    regex    [0-9.]+                %s
  12998.  
  12999. 0    regex    \^%*[\ \t]*sisu-[0-9.]+        SiSU text
  13000. >5    regex    [0-9.]+                %s
  13001. #------------------------------------------------------------------------------
  13002. # Sketch Drawings: http://sketch.sourceforge.net/ 
  13003. # From: Edwin Mons <e@ik.nu>
  13004. 0    search/1    ##Sketch    Sketch document text
  13005.  
  13006. #-----------------------------------------------
  13007. # GNU Smalltalk image, starting at version 1.6.2
  13008. # From: catull_us@yahoo.com
  13009. #
  13010. 0    string    GSTIm\0\0    GNU SmallTalk
  13011. # little-endian
  13012. >7    byte&1    =0        LE image version
  13013. >>10    byte    x        %d.
  13014. >>9    byte    x        \b%d.
  13015. >>8    byte    x        \b%d
  13016. #>>12    lelong    x        , data: %ld
  13017. #>>16    lelong    x        , table: %ld
  13018. #>>20    lelong    x        , memory: %ld
  13019. # big-endian
  13020. >7    byte&1    =1        BE image version
  13021. >>8    byte    x        %d.
  13022. >>9    byte    x        \b%d.
  13023. >>10    byte    x        \b%d
  13024. #>>12    belong    x        , data: %ld
  13025. #>>16    belong    x        , table: %ld
  13026. #>>20    belong    x        , memory: %ld
  13027.  
  13028.  
  13029.  
  13030. #------------------------------------------------------------------------------
  13031. # sniffer:  file(1) magic for packet capture files
  13032. #
  13033. # From: guy@alum.mit.edu (Guy Harris)
  13034. #
  13035.  
  13036. #
  13037. # Microsoft Network Monitor 1.x capture files.
  13038. #
  13039. 0    string        RTSS        NetMon capture file
  13040. >5    byte        x        - version %d
  13041. >4    byte        x        \b.%d
  13042. >6    leshort        0        (Unknown)
  13043. >6    leshort        1        (Ethernet)
  13044. >6    leshort        2        (Token Ring)
  13045. >6    leshort        3        (FDDI)
  13046. >6    leshort        4        (ATM)
  13047.  
  13048. #
  13049. # Microsoft Network Monitor 2.x capture files.
  13050. #
  13051. 0    string        GMBU        NetMon capture file
  13052. >5    byte        x        - version %d
  13053. >4    byte        x        \b.%d
  13054. >6    leshort        0        (Unknown)
  13055. >6    leshort        1        (Ethernet)
  13056. >6    leshort        2        (Token Ring)
  13057. >6    leshort        3        (FDDI)
  13058. >6    leshort        4        (ATM)
  13059.  
  13060. #
  13061. # Network General Sniffer capture files.
  13062. # Sorry, make that "Network Associates Sniffer capture files."
  13063. # Sorry, make that "Network General old DOS Sniffer capture files."
  13064. #
  13065. 0    string        TRSNIFF\ data\ \ \ \ \032    Sniffer capture file
  13066. >33    byte        2        (compressed)
  13067. >23    leshort        x        - version %d
  13068. >25    leshort        x        \b.%d
  13069. >32    byte        0        (Token Ring)
  13070. >32    byte        1        (Ethernet)
  13071. >32    byte        2        (ARCNET)
  13072. >32    byte        3        (StarLAN)
  13073. >32    byte        4        (PC Network broadband)
  13074. >32    byte        5        (LocalTalk)
  13075. >32    byte        6        (Znet)
  13076. >32    byte        7        (Internetwork Analyzer)
  13077. >32    byte        9        (FDDI)
  13078. >32    byte        10        (ATM)
  13079.  
  13080. #
  13081. # Cinco Networks NetXRay capture files.
  13082. # Sorry, make that "Network General Sniffer Basic capture files."
  13083. # Sorry, make that "Network Associates Sniffer Basic capture files."
  13084. # Sorry, make that "Network Associates Sniffer Basic, and Windows
  13085. # Sniffer Pro", capture files."
  13086. # Sorry, make that "Network General Sniffer capture files."
  13087. #
  13088. 0    string        XCP\0        NetXRay capture file
  13089. >4    string        >\0        - version %s
  13090. >44    leshort        0        (Ethernet)
  13091. >44    leshort        1        (Token Ring)
  13092. >44    leshort        2        (FDDI)
  13093. >44    leshort        3        (WAN)
  13094. >44    leshort        8        (ATM)
  13095. >44    leshort        9        (802.11)
  13096.  
  13097. #
  13098. # "libpcap" capture files.
  13099. # (We call them "tcpdump capture file(s)" for now, as "tcpdump" is
  13100. # the main program that uses that format, but there are other programs
  13101. # that use "libpcap", or that use the same capture file format.)
  13102. #
  13103. 0    ubelong        0xa1b2c3d4    tcpdump capture file (big-endian)
  13104. >4    beshort        x        - version %d
  13105. >6    beshort        x        \b.%d
  13106. >20    belong        0        (No link-layer encapsulation
  13107. >20    belong        1        (Ethernet
  13108. >20    belong        2        (3Mb Ethernet
  13109. >20    belong        3        (AX.25
  13110. >20    belong        4        (ProNET
  13111. >20    belong        5        (CHAOS
  13112. >20    belong        6        (Token Ring
  13113. >20    belong        7        (BSD ARCNET
  13114. >20    belong        8        (SLIP
  13115. >20    belong        9        (PPP
  13116. >20    belong        10        (FDDI
  13117. >20    belong        11        (RFC 1483 ATM
  13118. >20    belong        12        (raw IP
  13119. >20    belong        13        (BSD/OS SLIP
  13120. >20    belong        14        (BSD/OS PPP
  13121. >20    belong        19        (Linux ATM Classical IP
  13122. >20    belong        50        (PPP or Cisco HDLC
  13123. >20    belong        51        (PPP-over-Ethernet
  13124. >20    belong        99        (Symantec Enterprise Firewall
  13125. >20    belong        100        (RFC 1483 ATM
  13126. >20    belong        101        (raw IP
  13127. >20    belong        102        (BSD/OS SLIP
  13128. >20    belong        103        (BSD/OS PPP
  13129. >20    belong        104        (BSD/OS Cisco HDLC
  13130. >20    belong        105        (802.11
  13131. >20    belong        106        (Linux Classical IP over ATM
  13132. >20    belong        107        (Frame Relay
  13133. >20    belong        108        (OpenBSD loopback
  13134. >20    belong        109        (OpenBSD IPsec encrypted
  13135. >20    belong        112        (Cisco HDLC
  13136. >20    belong        113        (Linux "cooked"
  13137. >20    belong        114        (LocalTalk
  13138. >20    belong        117        (OpenBSD PFLOG
  13139. >20    belong        119        (802.11 with Prism header
  13140. >20    belong        122        (RFC 2625 IP over Fibre Channel
  13141. >20    belong        123        (SunATM
  13142. >20    belong        127        (802.11 with radiotap header
  13143. >20    belong        129        (Linux ARCNET
  13144. >20    belong        138        (Apple IP over IEEE 1394
  13145. >20    belong        140        (MTP2
  13146. >20    belong        141        (MTP3
  13147. >20    belong        143        (DOCSIS
  13148. >20    belong        144        (IrDA
  13149. >20    belong        147        (Private use 0
  13150. >20    belong        148        (Private use 1
  13151. >20    belong        149        (Private use 2
  13152. >20    belong        150        (Private use 3
  13153. >20    belong        151        (Private use 4
  13154. >20    belong        152        (Private use 5
  13155. >20    belong        153        (Private use 6
  13156. >20    belong        154        (Private use 7
  13157. >20    belong        155        (Private use 8
  13158. >20    belong        156        (Private use 9
  13159. >20    belong        157        (Private use 10
  13160. >20    belong        158        (Private use 11
  13161. >20    belong        159        (Private use 12
  13162. >20    belong        160        (Private use 13
  13163. >20    belong        161        (Private use 14
  13164. >20    belong        162        (Private use 15
  13165. >20    belong        163        (802.11 with AVS header
  13166. >16    belong        x        \b, capture length %d)
  13167. 0    ulelong        0xa1b2c3d4    tcpdump capture file (little-endian)
  13168. >4    leshort        x        - version %d
  13169. >6    leshort        x        \b.%d
  13170. >20    lelong        0        (No link-layer encapsulation
  13171. >20    lelong        1        (Ethernet
  13172. >20    lelong        2        (3Mb Ethernet
  13173. >20    lelong        3        (AX.25
  13174. >20    lelong        4        (ProNET
  13175. >20    lelong        5        (CHAOS
  13176. >20    lelong        6        (Token Ring
  13177. >20    lelong        7        (ARCNET
  13178. >20    lelong        8        (SLIP
  13179. >20    lelong        9        (PPP
  13180. >20    lelong        10        (FDDI
  13181. >20    lelong        11        (RFC 1483 ATM
  13182. >20    lelong        12        (raw IP
  13183. >20    lelong        13        (BSD/OS SLIP
  13184. >20    lelong        14        (BSD/OS PPP
  13185. >20    lelong        19        (Linux ATM Classical IP
  13186. >20    lelong        50        (PPP or Cisco HDLC
  13187. >20    lelong        51        (PPP-over-Ethernet
  13188. >20    lelong        99        (Symantec Enterprise Firewall
  13189. >20    lelong        100        (RFC 1483 ATM
  13190. >20    lelong        101        (raw IP
  13191. >20    lelong        102        (BSD/OS SLIP
  13192. >20    lelong        103        (BSD/OS PPP
  13193. >20    lelong        104        (BSD/OS Cisco HDLC
  13194. >20    lelong        105        (802.11
  13195. >20    lelong        106        (Linux Classical IP over ATM
  13196. >20    lelong        107        (Frame Relay
  13197. >20    lelong        108        (OpenBSD loopback
  13198. >20    lelong        109        (OpenBSD IPsec encrypted
  13199. >20    lelong        112        (Cisco HDLC
  13200. >20    lelong        113        (Linux "cooked"
  13201. >20    lelong        114        (LocalTalk
  13202. >20    lelong        117        (OpenBSD PFLOG
  13203. >20    lelong        119        (802.11 with Prism header
  13204. >20    lelong        122        (RFC 2625 IP over Fibre Channel
  13205. >20    lelong        123        (SunATM
  13206. >20    lelong        127        (802.11 with radiotap header
  13207. >20    lelong        129        (Linux ARCNET
  13208. >20    lelong        138        (Apple IP over IEEE 1394
  13209. >20    lelong        140        (MTP2
  13210. >20    lelong        141        (MTP3
  13211. >20    lelong        143        (DOCSIS
  13212. >20    lelong        144        (IrDA
  13213. >20    lelong        147        (Private use 0
  13214. >20    lelong        148        (Private use 1
  13215. >20    lelong        149        (Private use 2
  13216. >20    lelong        150        (Private use 3
  13217. >20    lelong        151        (Private use 4
  13218. >20    lelong        152        (Private use 5
  13219. >20    lelong        153        (Private use 6
  13220. >20    lelong        154        (Private use 7
  13221. >20    lelong        155        (Private use 8
  13222. >20    lelong        156        (Private use 9
  13223. >20    lelong        157        (Private use 10
  13224. >20    lelong        158        (Private use 11
  13225. >20    lelong        159        (Private use 12
  13226. >20    lelong        160        (Private use 13
  13227. >20    lelong        161        (Private use 14
  13228. >20    lelong        162        (Private use 15
  13229. >20    lelong        163        (802.11 with AVS header
  13230. >16    lelong        x        \b, capture length %d)
  13231.  
  13232. #
  13233. # "libpcap"-with-Alexey-Kuznetsov's-patches capture files.
  13234. # (We call them "tcpdump capture file(s)" for now, as "tcpdump" is
  13235. # the main program that uses that format, but there are other programs
  13236. # that use "libpcap", or that use the same capture file format.)
  13237. #
  13238. 0    ubelong        0xa1b2cd34    extended tcpdump capture file (big-endian)
  13239. >4    beshort        x        - version %d
  13240. >6    beshort        x        \b.%d
  13241. >20    belong        0        (No link-layer encapsulation
  13242. >20    belong        1        (Ethernet
  13243. >20    belong        2        (3Mb Ethernet
  13244. >20    belong        3        (AX.25
  13245. >20    belong        4        (ProNET
  13246. >20    belong        5        (CHAOS
  13247. >20    belong        6        (Token Ring
  13248. >20    belong        7        (ARCNET
  13249. >20    belong        8        (SLIP
  13250. >20    belong        9        (PPP
  13251. >20    belong        10        (FDDI
  13252. >20    belong        11        (RFC 1483 ATM
  13253. >20    belong        12        (raw IP
  13254. >20    belong        13        (BSD/OS SLIP
  13255. >20    belong        14        (BSD/OS PPP
  13256. >16    belong        x        \b, capture length %d)
  13257. 0    ulelong        0xa1b2cd34    extended tcpdump capture file (little-endian)
  13258. >4    leshort        x        - version %d
  13259. >6    leshort        x        \b.%d
  13260. >20    lelong        0        (No link-layer encapsulation
  13261. >20    lelong        1        (Ethernet
  13262. >20    lelong        2        (3Mb Ethernet
  13263. >20    lelong        3        (AX.25
  13264. >20    lelong        4        (ProNET
  13265. >20    lelong        5        (CHAOS
  13266. >20    lelong        6        (Token Ring
  13267. >20    lelong        7        (ARCNET
  13268. >20    lelong        8        (SLIP
  13269. >20    lelong        9        (PPP
  13270. >20    lelong        10        (FDDI
  13271. >20    lelong        11        (RFC 1483 ATM
  13272. >20    lelong        12        (raw IP
  13273. >20    lelong        13        (BSD/OS SLIP
  13274. >20    lelong        14        (BSD/OS PPP
  13275. >16    lelong        x        \b, capture length %d)
  13276.  
  13277. #
  13278. # AIX "iptrace" capture files.
  13279. #
  13280. 0    string        iptrace\ 1.0    "iptrace" capture file
  13281. 0    string        iptrace\ 2.0    "iptrace" capture file
  13282.  
  13283. #
  13284. # Novell LANalyzer capture files.
  13285. #
  13286. 0    leshort        0x1001        LANalyzer capture file
  13287. 0    leshort        0x1007        LANalyzer capture file
  13288.  
  13289. #
  13290. # HP-UX "nettl" capture files.
  13291. #
  13292. 0    string        \x54\x52\x00\x64\x00    "nettl" capture file
  13293.  
  13294. #
  13295. # RADCOM WAN/LAN Analyzer capture files.
  13296. #
  13297. 0    string        \x42\xd2\x00\x34\x12\x66\x22\x88    RADCOM WAN/LAN Analyzer capture file
  13298.  
  13299. #
  13300. # NetStumbler log files.  Not really packets, per se, but about as
  13301. # close as you can get.  These are log files from NetStumbler, a
  13302. # Windows program, that scans for 802.11b networks.
  13303. #
  13304. 0    string        NetS        NetStumbler log file
  13305. >8    lelong        x        \b, %d stations found
  13306.  
  13307. #
  13308. # EtherPeek/AiroPeek "version 9" capture files.
  13309. #
  13310. 0    string        \177ver        EtherPeek/AiroPeek capture file
  13311.  
  13312. #
  13313. # Visual Networks traffic capture files.
  13314. #
  13315. 0    string        \x05VNF        Visual Networks traffic capture file
  13316.  
  13317. #
  13318. # Network Instruments Observer capture files.
  13319. #
  13320. 0    string        ObserverPktBuffe    Network Instruments Observer capture file
  13321.  
  13322. #
  13323. # Files from Accellent Group's 5View products.
  13324. #
  13325. 0    string        \xaa\xaa\xaa\xaa    5View capture file
  13326. #------------------------------------------------------------------------------
  13327. # softquad:  file(1) magic for SoftQuad Publishing Software
  13328. #
  13329. # Author/Editor and RulesBuilder
  13330. #
  13331. # XXX - byte order?
  13332. #
  13333. 0    string        \<!SQ\ DTD>    Compiled SGML rules file
  13334. >9    string        >\0         Type %s
  13335. 0    string        \<!SQ\ A/E>    A/E SGML Document binary
  13336. >9    string        >\0         Type %s
  13337. 0    string        \<!SQ\ STS>    A/E SGML binary styles file
  13338. >9    string        >\0         Type %s
  13339. 0    short        0xc0de        Compiled PSI (v1) data
  13340. 0    short        0xc0da        Compiled PSI (v2) data
  13341. >3    string        >\0        (%s)
  13342. # Binary sqtroff font/desc files...
  13343. 0    short        0125252        SoftQuad DESC or font file binary
  13344. >2    short        >0        - version %d
  13345. # Bitmaps...
  13346. 0    search/1    SQ\ BITMAP1    SoftQuad Raster Format text
  13347. #0    string        SQ\ BITMAP2    SoftQuad Raster Format data
  13348. # sqtroff intermediate language (replacement for ditroff int. lang.)
  13349. 0    string        X\         SoftQuad troff Context intermediate
  13350. >2    string        495        for AT&T 495 laser printer
  13351. >2    string        hp        for Hewlett-Packard LaserJet
  13352. >2    string        impr        for IMAGEN imPRESS
  13353. >2    string        ps        for PostScript
  13354.  
  13355. # From: Michael Piefel <piefel@debian.org>
  13356. # sqtroff intermediate language (replacement for ditroff int. lang.)
  13357. 0    string        X\ 495        SoftQuad troff Context intermediate for AT&T 495 laser printer
  13358. 0    string        X\ hp        SoftQuad troff Context intermediate for HP LaserJet
  13359. 0    string        X\ impr        SoftQuad troff Context intermediate for IMAGEN imPRESS
  13360. 0    string        X\ ps        SoftQuad troff Context intermediate for PostScript
  13361.  
  13362. #------------------------------------------------------------------------------
  13363. # spec:  file(1) magic for SPEC raw results (*.raw, *.rsf)
  13364. #
  13365. # Cloyce D. Spradling <cloyce@headgear.org>
  13366.  
  13367. 0    string    spec            SPEC
  13368. >4    string    .cpu            CPU
  13369. >>8    string    <:            \b%.4s
  13370. >>12    string    .            raw result text
  13371.  
  13372. 17    string    version=SPECjbb        SPECjbb
  13373. >32    string    <:            \b%.4s
  13374. >>37    string    <:            v%.4s raw result text
  13375.  
  13376. 0    string    BEGIN\040SPECWEB    SPECweb
  13377. >13    string    <:            \b%.2s
  13378. >>15    string    _SSL            \b_SSL
  13379. >>>20    string    <:            v%.4s raw result text
  13380. >>16    string    <:            v%.4s raw result text
  13381.  
  13382. #------------------------------------------------------------------------------
  13383. # spectrum:  file(1) magic for Spectrum emulator files.
  13384. #
  13385. # John Elliott <jce@seasip.demon.co.uk>
  13386.  
  13387. #
  13388. # Spectrum +3DOS header
  13389. #
  13390. 0       string          PLUS3DOS\032    Spectrum +3 data
  13391. >15     byte            0               - BASIC program
  13392. >15     byte            1               - number array
  13393. >15     byte            2               - character array
  13394. >15     byte            3               - memory block
  13395. >>16    belong          0x001B0040      (screen)
  13396. >15     byte            4               - Tasword document
  13397. >15     string          TAPEFILE        - ZXT tapefile
  13398. #
  13399. # Tape file. This assumes the .TAP starts with a Spectrum-format header,
  13400. # which nearly all will.
  13401. #
  13402. # Update: Sanity-check string contents to be printable.
  13403. #  -Adam Buchbinder <adam.buchbinder@gmail.com>
  13404. #
  13405. 0       string          \023\000\000
  13406. >4      string          >\0
  13407. >>4     string          <\177           Spectrum .TAP data "%-10.10s"
  13408. >>>3    byte            0               - BASIC program
  13409. >>>3    byte            1               - number array
  13410. >>>3    byte            2               - character array
  13411. >>>3    byte            3               - memory block
  13412. >>>>14  belong          0x001B0040      (screen)
  13413.  
  13414. # The following three blocks are from pak21-spectrum@srcf.ucam.org
  13415. # TZX tape images
  13416. 0      string          ZXTape!\x1a     Spectrum .TZX data
  13417. >8     byte            x               version %d
  13418. >9     byte            x               \b.%d
  13419.  
  13420. # RZX input recording files
  13421. 0      string          RZX!            Spectrum .RZX data
  13422. >4     byte            x               version %d
  13423. >5     byte            x               \b.%d
  13424.  
  13425. # Floppy disk images
  13426. 0      string          MV\ -\ CPCEMU\ Disk-Fil Amstrad/Spectrum .DSK data
  13427. 0      string          MV\ -\ CPC\ format\ Dis Amstrad/Spectrum DU54 .DSK data
  13428. 0      string          EXTENDED\ CPC\ DSK\ Fil Amstrad/Spectrum Extended .DSK data
  13429. 0      string          SINCLAIR        Spectrum .SCL Betadisk image
  13430.  
  13431. # Hard disk images
  13432. 0      string          RS-IDE\x1a      Spectrum .HDF hard disk image
  13433. >7     byte            x               \b, version 0x%02x
  13434.  
  13435. #------------------------------------------------------------------------------
  13436. # sql:  file(1) magic for SQL files
  13437. #
  13438. # From: "Marty Leisner" <mleisner@eng.mc.xerox.com>
  13439. # Recognize some MySQL files.
  13440. #
  13441. 0    beshort            0xfe01        MySQL table definition file
  13442. >2    byte            x        Version %d
  13443. 0    belong&0xffffff00    0xfefe0300    MySQL MISAM index file
  13444. >3    byte            x        Version %d
  13445. 0    belong&0xffffff00    0xfefe0700    MySQL MISAM compressed data file
  13446. >3    byte            x        Version %d
  13447. 0    belong&0xffffff00    0xfefe0500    MySQL ISAM index file
  13448. >3    byte            x        Version %d
  13449. 0    belong&0xffffff00    0xfefe0600    MySQL ISAM compressed data file
  13450. >3    byte            x        Version %d
  13451. 0    string             \376bin        MySQL replication log
  13452.  
  13453. #------------------------------------------------------------------------------
  13454. # iRiver H Series database file 
  13455. # From Ken Guest <ken@linux.ie>
  13456. # As observed from iRivNavi.iDB and unencoded firmware
  13457. #
  13458. 0   string        iRivDB    iRiver Database file
  13459. >11  string    >\0    Version %s
  13460. >39  string        iHP-100    [H Series]
  13461.  
  13462. #------------------------------------------------------------------------------
  13463. # SQLite database files
  13464. # Ken Guest <ken@linux.ie>, Ty Sarna, Zack Weinberg
  13465. #
  13466. # Version 1 used GDBM internally; its files cannot be distinguished
  13467. # from other GDBM files.
  13468. #
  13469. # Version 2 used this format:
  13470. 0    string    **\ This\ file\ contains\ an\ SQLite  SQLite 2.x database
  13471.  
  13472. # Version 3 of SQLite allows applications to embed their own "user version"
  13473. # number in the database.  Detect this and distinguish those files.
  13474.  
  13475. 0   string  SQLite\ format\ 3
  13476. >60 string  _MTN               Monotone source repository
  13477. >60 belong  !0                 SQLite 3.x database, user version %u
  13478. >60 belong  0                  SQLite 3.x database
  13479. # Type:    OpenSSH key files
  13480. # From:    Nicolas Collignon <tsointsoin@gmail.com>
  13481.  
  13482. 0    string    SSH\ PRIVATE\ KEY    OpenSSH RSA1 private key,
  13483. >28    string    >\0            version %s
  13484.  
  13485. 0    string    ssh-dss\        OpenSSH DSA public key
  13486. 0    string    ssh-rsa\        OpenSSH RSA public key
  13487. # Type: OpenSSL certificates/key files
  13488. # From: Nicolas Collignon <tsointsoin@gmail.com>
  13489.  
  13490. 0    string    -----BEGIN\ CERTIFICATE-----    PEM certificate
  13491. 0    string    -----BEGIN\ CERTIFICATE\ REQ    PEM certificate request
  13492. 0    string    -----BEGIN\ RSA\ PRIVATE    PEM RSA private key
  13493. 0    string    -----BEGIN\ DSA\ PRIVATE    PEM DSA private key
  13494.  
  13495. #------------------------------------------------------------------------------
  13496. # sun:  file(1) magic for Sun machines
  13497. #
  13498. # Values for big-endian Sun (MC680x0, SPARC) binaries on pre-5.x
  13499. # releases.  (5.x uses ELF.)
  13500. #
  13501. 0    belong&077777777    0600413        sparc demand paged
  13502. >0    byte        &0x80
  13503. >>20    belong        <4096        shared library
  13504. >>20    belong        =4096        dynamically linked executable
  13505. >>20    belong        >4096        dynamically linked executable
  13506. >0    byte        ^0x80        executable
  13507. >16    belong        >0        not stripped
  13508.  
  13509. 0    belong&077777777    0600410        sparc pure
  13510. >0    byte        &0x80        dynamically linked executable
  13511. >0    byte        ^0x80        executable
  13512. >16    belong        >0        not stripped
  13513.  
  13514. 0    belong&077777777    0600407        sparc
  13515. >0    byte        &0x80        dynamically linked executable
  13516. >0    byte        ^0x80        executable
  13517. >16    belong        >0        not stripped
  13518.  
  13519. 0    belong&077777777    0400413        mc68020 demand paged
  13520. >0    byte        &0x80
  13521. >>20    belong        <4096        shared library
  13522. >>20    belong        =4096        dynamically linked executable
  13523. >>20    belong        >4096        dynamically linked executable
  13524. >0    byte        ^0x80        executable
  13525. >16    belong        >0        not stripped
  13526.  
  13527. 0    belong&077777777    0400410        mc68020 pure
  13528. >0    byte        &0x80        dynamically linked executable
  13529. >0    byte        ^0x80        executable
  13530. >16    belong        >0        not stripped
  13531.  
  13532. 0    belong&077777777    0400407        mc68020
  13533. >0    byte        &0x80        dynamically linked executable
  13534. >0    byte        ^0x80        executable
  13535. >16    belong        >0        not stripped
  13536.  
  13537. 0    belong&077777777    0200413        mc68010 demand paged
  13538. >0    byte        &0x80
  13539. >>20    belong        <4096        shared library
  13540. >>20    belong        =4096        dynamically linked executable
  13541. >>20    belong        >4096        dynamically linked executable
  13542. >0    byte        ^0x80        executable
  13543. >16    belong        >0        not stripped
  13544.  
  13545. 0    belong&077777777    0200410        mc68010 pure
  13546. >0    byte        &0x80        dynamically linked executable
  13547. >0    byte        ^0x80        executable
  13548. >16    belong        >0        not stripped
  13549.  
  13550. 0    belong&077777777    0200407        mc68010
  13551. >0    byte        &0x80        dynamically linked executable
  13552. >0    byte        ^0x80        executable
  13553. >16    belong        >0        not stripped
  13554.  
  13555. # reworked these to avoid anything beginning with zero becoming "old sun-2"
  13556. 0    belong        0407        old sun-2 executable
  13557. >16    belong        >0        not stripped
  13558. 0    belong        0410        old sun-2 pure executable
  13559. >16    belong        >0        not stripped
  13560. 0    belong        0413        old sun-2 demand paged executable
  13561. >16    belong        >0        not stripped
  13562.  
  13563. #
  13564. # Core files.  "SPARC 4.x BCP" means "core file from a SunOS 4.x SPARC
  13565. # binary executed in compatibility mode under SunOS 5.x".
  13566. #
  13567. 0    belong        0x080456    SunOS core file
  13568. >4    belong        432        (SPARC)
  13569. >>132    string        >\0        from '%s'
  13570. >>116    belong        =3        (quit)
  13571. >>116    belong        =4        (illegal instruction)
  13572. >>116    belong        =5        (trace trap)
  13573. >>116    belong        =6        (abort)
  13574. >>116    belong        =7        (emulator trap)
  13575. >>116    belong        =8        (arithmetic exception)
  13576. >>116    belong        =9        (kill)
  13577. >>116    belong        =10        (bus error)
  13578. >>116    belong        =11        (segmentation violation)
  13579. >>116    belong        =12        (bad argument to system call)
  13580. >>116    belong        =29        (resource lost)
  13581. >>120    belong        x        (T=%dK,
  13582. >>124    belong        x        D=%dK,
  13583. >>128    belong        x        S=%dK)
  13584. >4    belong        826        (68K)
  13585. >>128    string        >\0        from '%s'
  13586. >4    belong        456        (SPARC 4.x BCP)
  13587. >>152    string        >\0        from '%s'
  13588. # Sun SunPC
  13589. 0    long        0xfa33c08e    SunPC 4.0 Hard Disk
  13590. 0    string        #SUNPC_CONFIG    SunPC 4.0 Properties Values
  13591. # Sun snoop (see RFC 1761, which describes the capture file format).
  13592. #
  13593. 0    string        snoop        Snoop capture file
  13594. >8    belong        >0        - version %ld
  13595. >12    belong        0        (IEEE 802.3)
  13596. >12    belong        1        (IEEE 802.4)
  13597. >12    belong        2        (IEEE 802.5)
  13598. >12    belong        3        (IEEE 802.6)
  13599. >12    belong        4        (Ethernet)
  13600. >12    belong        5        (HDLC)
  13601. >12    belong        6        (Character synchronous)
  13602. >12    belong        7        (IBM channel-to-channel adapter)
  13603. >12    belong        8        (FDDI)
  13604. >12    belong        9        (Unknown)
  13605.  
  13606. # Microsoft ICM color profile
  13607. 36    string        acspMSFT    Microsoft ICM Color Profile
  13608. # Sun KCMS
  13609. 36    string        acsp        Kodak Color Management System, ICC Profile
  13610.  
  13611. #---------------------------------------------------------------------------
  13612. # The following entries have been tested by Duncan Laurie <duncan@sun.com> (a
  13613. # lead Sun/Cobalt developer) who agrees that they are good and worthy of
  13614. # inclusion.
  13615.  
  13616. # Boot ROM images for Sun/Cobalt Linux server appliances
  13617. 0       string  Cobalt\ Networks\ Inc.\nFirmware\ v     Paged COBALT boot rom
  13618. >38     string x        V%.4s
  13619.  
  13620. # New format for Sun/Cobalt boot ROMs is annoying, it stores the version code
  13621. # at the very end where file(1) can't get it.
  13622. 0       string CRfs     COBALT boot rom data (Flat boot rom or file system)
  13623.  
  13624.  
  13625. #------------------------------------------------------------------------
  13626. # sysex: file(1) magic for MIDI sysex files
  13627. #
  13628. 0    byte            0xF0        SysEx File -
  13629.  
  13630. # North American Group
  13631. >1    byte            0x01        Sequential
  13632. >1    byte            0x02        IDP
  13633. >1    byte            0x03        OctavePlateau
  13634. >1    byte            0x04        Moog
  13635. >1    byte            0x05        Passport
  13636. >1    byte            0x06        Lexicon
  13637. >1    byte            0x07        Kurzweil/Future Retro
  13638. >>3    byte            0x77        777
  13639. >>4    byte            0x00        Bank
  13640. >>4    byte            0x01        Song
  13641. >>5    byte            0x0f        16
  13642. >>5    byte            0x0e        15
  13643. >>5    byte            0x0d        14
  13644. >>5    byte            0x0c        13
  13645. >>5    byte            0x0b        12
  13646. >>5    byte            0x0a        11
  13647. >>5    byte            0x09        10
  13648. >>5    byte            0x08        9
  13649. >>5    byte            0x07        8
  13650. >>5    byte            0x06        7
  13651. >>5    byte            0x05        6
  13652. >>5    byte            0x04        5
  13653. >>5    byte            0x03        4
  13654. >>5    byte            0x02        3
  13655. >>5    byte            0x01        2
  13656. >>5    byte            0x00        1
  13657. >>5    byte            0x10        (ALL)
  13658. >>2    byte            x            \b, Channel %d
  13659. >1    byte            0x08        Fender
  13660. >1    byte            0x09        Gulbransen
  13661. >1    byte            0x0a        AKG
  13662. >1    byte            0x0b        Voyce
  13663. >1    byte            0x0c        Waveframe
  13664. >1    byte            0x0d        ADA
  13665. >1    byte            0x0e        Garfield
  13666. >1    byte            0x0f        Ensoniq
  13667. >1    byte            0x10        Oberheim
  13668. >>2    byte            0x06        Matrix 6 series
  13669. >>3    byte            0x0A        Dump (All)
  13670. >>3    byte            0x01        Dump (Bank)
  13671. >>4 belong            0x0002040E        Matrix 1000
  13672. >>>11 byte            <2            User bank %d
  13673. >>>11 byte            >1            Preset bank %d
  13674. >1    byte            0x11        Apple
  13675. >1    byte            0x12        GreyMatter
  13676. >1    byte            0x14        PalmTree
  13677. >1    byte            0x15        JLCooper
  13678. >1    byte            0x16        Lowrey
  13679. >1    byte            0x17        AdamsSmith
  13680. >1    byte            0x18        E-mu
  13681. >1    byte            0x19        Harmony
  13682. >1    byte            0x1a        ART
  13683. >1    byte            0x1b        Baldwin
  13684. >1    byte            0x1c        Eventide
  13685. >1    byte            0x1d        Inventronics
  13686. >1    byte            0x1f        Clarity
  13687.  
  13688. # European Group
  13689. >1    byte            0x21        SIEL
  13690. >1    byte            0x22        Synthaxe
  13691. >1    byte            0x24        Hohner
  13692. >1    byte            0x25        Twister
  13693. >1    byte            0x26        Solton
  13694. >1    byte            0x27        Jellinghaus
  13695. >1    byte            0x28        Southworth
  13696. >1    byte            0x29        PPG
  13697. >1    byte            0x2a        JEN
  13698. >1    byte            0x2b        SSL
  13699. >1    byte            0x2c        AudioVertrieb
  13700.  
  13701. >1    byte            0x2f        ELKA
  13702. >>3    byte            0x09        EK-44
  13703.  
  13704. >1    byte            0x30        Dynacord
  13705. >1    byte            0x31        Jomox
  13706. >1    byte            0x33        Clavia
  13707. >1    byte            0x39        Soundcraft
  13708. # Some Waldorf info from http://Stromeko.Synth.net/Downloads#WaldorfDocs
  13709. >1    byte            0x3e        Waldorf
  13710. >>2    byte            0x00        microWave
  13711. >>2    byte            0x0E        microwave2 / XT
  13712. >>2    byte            0x0F        Q / Q+
  13713. >>3    byte            =0            (default id)
  13714. >>3 byte            >0            (
  13715. >>>3 byte            <0x7F        \bdevice %d)
  13716. >>>3 byte            =0x7F        \bbroadcast id)
  13717. >>3    byte            0x7f        Microwave I
  13718. >>>4    byte            0x00        SNDR (Sound Request)
  13719. >>>4    byte            0x10        SNDD (Sound Dump)
  13720. >>>4    byte            0x20        SNDP (Sound Parameter Change)
  13721. >>>4    byte            0x30        SNDQ (Sound Parameter Inquiry)
  13722. >>>4    byte            0x70        BOOT (Sound Reserved)
  13723. >>>4    byte            0x01        MULR (Multi Request)
  13724. >>>4    byte            0x11        MULD (Multi Dump)
  13725. >>>4    byte            0x21        MULP (Multi Parameter Change)
  13726. >>>4    byte            0x31        MULQ (Multi Parameter Inquiry)
  13727. >>>4    byte            0x71        OS (Multi Reserved)
  13728. >>>4    byte            0x02        DRMR (Drum Map Request)
  13729. >>>4    byte            0x12        DRMD (Drum Map Dump)
  13730. >>>4    byte            0x22        DRMP (Drum Map Parameter Change)
  13731. >>>4    byte            0x32        DRMQ (Drum Map Parameter Inquiry)
  13732. >>>4    byte            0x72        BIN (Drum Map Reserved)
  13733. >>>4    byte            0x03        PATR (Sequencer Pattern Request)
  13734. >>>4    byte            0x13        PATD (Sequencer Pattern Dump)
  13735. >>>4    byte            0x23        PATP (Sequencer Pattern Parameter Change)
  13736. >>>4    byte            0x33        PATQ (Sequencer Pattern Parameter Inquiry)
  13737. >>>4    byte            0x73        AFM (Sequencer Pattern Reserved)
  13738. >>>4    byte            0x04        GLBR (Global Parameter Request)
  13739. >>>4    byte            0x14        GLBD (Global Parameter Dump)
  13740. >>>4    byte            0x24        GLBP (Global Parameter Parameter Change)
  13741. >>>4    byte            0x34        GLBQ (Global Parameter Parameter Inquiry)
  13742. >>>4    byte            0x07        MODR (Mode Parameter Request)
  13743. >>>4    byte            0x17        MODD (Mode Parameter Dump)
  13744. >>>4    byte            0x27        MODP (Mode Parameter Parameter Change)
  13745. >>>4    byte            0x37        MODQ (Mode Parameter Parameter Inquiry)
  13746. >>2    byte            0x10        microQ
  13747. >>>4    byte            0x00        SNDR (Sound Request)
  13748. >>>4    byte            0x10        SNDD (Sound Dump)
  13749. >>>4    byte            0x20        SNDP (Sound Parameter Change)
  13750. >>>4    byte            0x30        SNDQ (Sound Parameter Inquiry)
  13751. >>>4    byte            0x70        (Sound Reserved)
  13752. >>>4    byte            0x01        MULR (Multi Request)
  13753. >>>4    byte            0x11        MULD (Multi Dump)
  13754. >>>4    byte            0x21        MULP (Multi Parameter Change)
  13755. >>>4    byte            0x31        MULQ (Multi Parameter Inquiry)
  13756. >>>4    byte            0x71        OS (Multi Reserved)
  13757. >>>4    byte            0x02        DRMR (Drum Map Request)
  13758. >>>4    byte            0x12        DRMD (Drum Map Dump)
  13759. >>>4    byte            0x22        DRMP (Drum Map Parameter Change)
  13760. >>>4    byte            0x32        DRMQ (Drum Map Parameter Inquiry)
  13761. >>>4    byte            0x72        BIN (Drum Map Reserved)
  13762. >>>4    byte            0x04        GLBR (Global Parameter Request)
  13763. >>>4    byte            0x14        GLBD (Global Parameter Dump)
  13764. >>>4    byte            0x24        GLBP (Global Parameter Parameter Change)
  13765. >>>4    byte            0x34        GLBQ (Global Parameter Parameter Inquiry)
  13766. >>2    byte            0x11        rackAttack
  13767. >>>4    byte            0x00        SNDR (Sound Parameter Request)
  13768. >>>4    byte            0x10        SNDD (Sound Parameter Dump)
  13769. >>>4    byte            0x20        SNDP (Sound Parameter Parameter Change)
  13770. >>>4    byte            0x30        SNDQ (Sound Parameter Parameter Inquiry)
  13771. >>>4    byte            0x01        PRGR (Program Parameter Request)
  13772. >>>4    byte            0x11        PRGD (Program Parameter Dump)
  13773. >>>4    byte            0x21        PRGP (Program Parameter Parameter Change)
  13774. >>>4    byte            0x31        PRGQ (Program Parameter Parameter Inquiry)
  13775. >>>4    byte            0x71        OS (Program Parameter Reserved)
  13776. >>>4    byte            0x03        PATR (Pattern Parameter Request)
  13777. >>>4    byte            0x13        PATD (Pattern Parameter Dump)
  13778. >>>4    byte            0x23        PATP (Pattern Parameter Parameter Change)
  13779. >>>4    byte            0x33        PATQ (Pattern Parameter Parameter Inquiry)
  13780. >>>4    byte            0x04        GLBR (Global Parameter Request)
  13781. >>>4    byte            0x14        GLBD (Global Parameter Dump)
  13782. >>>4    byte            0x24        GLBP (Global Parameter Parameter Change)
  13783. >>>4    byte            0x34        GLBQ (Global Parameter Parameter Inquiry)
  13784. >>>4    byte            0x05        EFXR (FX Parameter Request)
  13785. >>>4    byte            0x15        EFXD (FX Parameter Dump)
  13786. >>>4    byte            0x25        EFXP (FX Parameter Parameter Change)
  13787. >>>4    byte            0x35        EFXQ (FX Parameter Parameter Inquiry)
  13788. >>>4    byte            0x07        MODR (Mode Command Request)
  13789. >>>4    byte            0x17        MODD (Mode Command Dump)
  13790. >>>4    byte            0x27        MODP (Mode Command Parameter Change)
  13791. >>>4    byte            0x37        MODQ (Mode Command Parameter Inquiry)
  13792. >>2    byte            0x03        Wave
  13793. >>>4    byte            0x00        SBPR (Soundprogram)
  13794. >>>4    byte            0x01        SAPR (Performance)
  13795. >>>4    byte            0x02        SWAVE (Wave)
  13796. >>>4    byte            0x03        SWTBL (Wave control table)
  13797. >>>4    byte            0x04        SVT (Velocity Curve)
  13798. >>>4    byte            0x05        STT (Tuning Table)
  13799. >>>4    byte            0x06        SGLB (Global Parameters)
  13800. >>>4    byte            0x07        SARRMAP (Performance Program Change Map)
  13801. >>>4    byte            0x08        SBPRMAP (Sound Program Change Map)
  13802. >>>4    byte            0x09        SBPRPAR (Sound Parameter)
  13803. >>>4    byte            0x0A        SARRPAR (Performance Parameter)
  13804. >>>4    byte            0x0B        SINSPAR (Instrument/External Parameter)
  13805. >>>4    byte            0x0F        SBULK (Bulk Switch on/off)
  13806.  
  13807. # Japanese Group
  13808. >1    byte            0x40        Kawai
  13809. >>3    byte            0x20        K1
  13810. >>3    byte            0x22        K4
  13811.  
  13812. >1    byte            0x41        Roland
  13813. >>3    byte            0x14        D-50
  13814. >>3    byte            0x2b        U-220
  13815. >>3    byte            0x02        TR-707
  13816.  
  13817. >1    byte            0x42        Korg
  13818. >>3    byte            0x19        M1
  13819.  
  13820. >1    byte            0x43        Yamaha
  13821. >1    byte            0x44        Casio
  13822. >1    byte            0x46        Kamiya
  13823. >1    byte            0x47        Akai
  13824. >1    byte            0x48        Victor
  13825. >1    byte            0x49        Mesosha
  13826. >1    byte            0x4b        Fujitsu
  13827. >1    byte            0x4c        Sony
  13828. >1    byte            0x4e        Teac
  13829. >1    byte            0x50        Matsushita
  13830. >1    byte            0x51        Fostex
  13831. >1    byte            0x52        Zoom
  13832. >1    byte            0x54        Matsushita
  13833. >1    byte            0x57        Acoustic tech. lab.
  13834.  
  13835. >1    belong&0xffffff00    0x00007400    Ta Horng
  13836. >1    belong&0xffffff00    0x00007500    e-Tek
  13837. >1    belong&0xffffff00    0x00007600    E-Voice
  13838. >1    belong&0xffffff00    0x00007700    Midisoft
  13839. >1    belong&0xffffff00    0x00007800    Q-Sound
  13840. >1    belong&0xffffff00    0x00007900    Westrex
  13841. >1    belong&0xffffff00    0x00007a00    Nvidia*
  13842. >1    belong&0xffffff00    0x00007b00    ESS
  13843. >1    belong&0xffffff00    0x00007c00    Mediatrix
  13844. >1    belong&0xffffff00    0x00007d00    Brooktree
  13845. >1    belong&0xffffff00    0x00007e00    Otari
  13846. >1    belong&0xffffff00    0x00007f00    Key Electronics
  13847. >1    belong&0xffffff00    0x00010000    Shure
  13848. >1    belong&0xffffff00    0x00010100    AuraSound
  13849. >1    belong&0xffffff00    0x00010200    Crystal
  13850. >1    belong&0xffffff00    0x00010300    Rockwell
  13851. >1    belong&0xffffff00    0x00010400    Silicon Graphics
  13852. >1    belong&0xffffff00    0x00010500    Midiman
  13853. >1    belong&0xffffff00    0x00010600    PreSonus
  13854. >1    belong&0xffffff00    0x00010800    Topaz
  13855. >1    belong&0xffffff00    0x00010900    Cast Lightning
  13856. >1    belong&0xffffff00    0x00010a00    Microsoft
  13857. >1    belong&0xffffff00    0x00010b00    Sonic Foundry
  13858. >1    belong&0xffffff00    0x00010c00    Line 6
  13859. >1    belong&0xffffff00    0x00010d00    Beatnik Inc.
  13860. >1    belong&0xffffff00    0x00010e00    Van Koerving
  13861. >1    belong&0xffffff00    0x00010f00    Altech Systems
  13862. >1    belong&0xffffff00    0x00011000    S & S Research
  13863. >1    belong&0xffffff00    0x00011100    VLSI Technology
  13864. >1    belong&0xffffff00    0x00011200    Chromatic
  13865. >1    belong&0xffffff00    0x00011300    Sapphire
  13866. >1    belong&0xffffff00    0x00011400    IDRC
  13867. >1    belong&0xffffff00    0x00011500    Justonic Tuning
  13868. >1    belong&0xffffff00    0x00011600    TorComp
  13869. >1    belong&0xffffff00    0x00011700    Newtek Inc.
  13870. >1    belong&0xffffff00    0x00011800    Sound Sculpture
  13871. >1    belong&0xffffff00    0x00011900    Walker Technical
  13872. >1    belong&0xffffff00    0x00011a00    Digital Harmony
  13873. >1    belong&0xffffff00    0x00011b00    InVision
  13874. >1    belong&0xffffff00    0x00011c00    T-Square
  13875. >1    belong&0xffffff00    0x00011d00    Nemesys
  13876. >1    belong&0xffffff00    0x00011e00    DBX
  13877. >1    belong&0xffffff00    0x00011f00    Syndyne
  13878. >1    belong&0xffffff00    0x00012000    Bitheadz    
  13879. >1    belong&0xffffff00    0x00012100    Cakewalk
  13880. >1    belong&0xffffff00    0x00012200    Staccato
  13881. >1    belong&0xffffff00    0x00012300    National Semicon.
  13882. >1    belong&0xffffff00    0x00012400    Boom Theory
  13883. >1    belong&0xffffff00    0x00012500    Virtual DSP Corp
  13884. >1    belong&0xffffff00    0x00012600    Antares
  13885. >1    belong&0xffffff00    0x00012700    Angel Software
  13886. >1    belong&0xffffff00    0x00012800    St Louis Music
  13887. >1    belong&0xffffff00    0x00012900    Lyrrus dba G-VOX
  13888. >1    belong&0xffffff00    0x00012a00    Ashley Audio
  13889. >1    belong&0xffffff00    0x00012b00    Vari-Lite
  13890. >1    belong&0xffffff00    0x00012c00    Summit Audio
  13891. >1    belong&0xffffff00    0x00012d00    Aureal Semicon.
  13892. >1    belong&0xffffff00    0x00012e00    SeaSound
  13893. >1    belong&0xffffff00    0x00012f00    U.S. Robotics
  13894. >1    belong&0xffffff00    0x00013000    Aurisis
  13895. >1    belong&0xffffff00    0x00013100    Nearfield Multimedia
  13896. >1    belong&0xffffff00    0x00013200    FM7 Inc.
  13897. >1    belong&0xffffff00    0x00013300    Swivel Systems
  13898. >1    belong&0xffffff00    0x00013400    Hyperactive
  13899. >1    belong&0xffffff00    0x00013500    MidiLite
  13900. >1    belong&0xffffff00    0x00013600    Radical
  13901. >1    belong&0xffffff00    0x00013700    Roger Linn
  13902. >1    belong&0xffffff00    0x00013800    Helicon
  13903. >1    belong&0xffffff00    0x00013900    Event
  13904. >1    belong&0xffffff00    0x00013a00    Sonic Network
  13905. >1    belong&0xffffff00    0x00013b00    Realtime Music
  13906. >1    belong&0xffffff00    0x00013c00    Apogee Digital
  13907.  
  13908. >1    belong&0xffffff00    0x00202b00    Medeli Electronics
  13909. >1    belong&0xffffff00    0x00202c00    Charlie Lab
  13910. >1    belong&0xffffff00    0x00202d00    Blue Chip Music
  13911. >1    belong&0xffffff00    0x00202e00    BEE OH Corp
  13912. >1    belong&0xffffff00    0x00202f00    LG Semicon America
  13913. >1    belong&0xffffff00    0x00203000    TESI
  13914. >1    belong&0xffffff00    0x00203100    EMAGIC
  13915. >1    belong&0xffffff00    0x00203200    Behringer
  13916. >1    belong&0xffffff00    0x00203300    Access Music
  13917. >1    belong&0xffffff00    0x00203400    Synoptic
  13918. >1    belong&0xffffff00    0x00203500    Hanmesoft Corp
  13919. >1    belong&0xffffff00    0x00203600    Terratec
  13920. >1    belong&0xffffff00    0x00203700    Proel SpA
  13921. >1    belong&0xffffff00    0x00203800    IBK MIDI
  13922. >1    belong&0xffffff00    0x00203900    IRCAM
  13923. >1    belong&0xffffff00    0x00203a00    Propellerhead Software
  13924. >1    belong&0xffffff00    0x00203b00    Red Sound Systems
  13925. >1    belong&0xffffff00    0x00203c00    Electron ESI AB
  13926. >1    belong&0xffffff00    0x00203d00    Sintefex Audio
  13927. >1    belong&0xffffff00    0x00203e00    Music and More
  13928. >1    belong&0xffffff00    0x00203f00    Amsaro
  13929. >1    belong&0xffffff00    0x00204000    CDS Advanced Technology
  13930. >1    belong&0xffffff00    0x00204100    Touched by Sound
  13931. >1    belong&0xffffff00    0x00204200    DSP Arts
  13932. >1    belong&0xffffff00    0x00204300    Phil Rees Music
  13933. >1    belong&0xffffff00    0x00204400    Stamer Musikanlagen GmbH
  13934. >1    belong&0xffffff00    0x00204500    Soundart
  13935. >1    belong&0xffffff00    0x00204600    C-Mexx Software
  13936. >1    belong&0xffffff00    0x00204700    Klavis Tech.
  13937. >1    belong&0xffffff00    0x00204800    Noteheads AB
  13938.  
  13939. 0    string            T707        Roland TR-707 Data
  13940. #------------------------------------------------------------------------------
  13941. # teapot:  file(1) magic for "teapot" spreadsheet
  13942. #
  13943. 0       string          #!teapot\012xdr      teapot work sheet (XDR format)
  13944.  
  13945. #------------------------------------------------------------------------------
  13946. # terminfo:  file(1) magic for terminfo
  13947. #
  13948. # XXX - byte order for screen images?
  13949. #
  13950. 0    string        \032\001    Compiled terminfo entry
  13951. 0    short        0433        Curses screen image
  13952. 0    short        0434        Curses screen image
  13953. #------------------------------------------------------------------------------
  13954. # tex:  file(1) magic for TeX files
  13955. #
  13956. # XXX - needs byte-endian stuff (big-endian and little-endian DVI?)
  13957. #
  13958. # From <conklin@talisman.kaleida.com>
  13959.  
  13960. # Although we may know the offset of certain text fields in TeX DVI
  13961. # and font files, we can't use them reliably because they are not
  13962. # zero terminated. [but we do anyway, christos]
  13963. 0    string        \367\002    TeX DVI file
  13964. !:mime    application/x-dvi
  13965. >16    string        >\0        (%s)
  13966. 0    string        \367\203    TeX generic font data
  13967. 0    string        \367\131    TeX packed font data
  13968. >3    string        >\0        (%s)
  13969. 0    string        \367\312    TeX virtual font data
  13970. 0    search/1    This\ is\ TeX,    TeX transcript text
  13971. 0    search/1    This\ is\ METAFONT,    METAFONT transcript text
  13972.  
  13973. # There is no way to detect TeX Font Metric (*.tfm) files without
  13974. # breaking them apart and reading the data.  The following patterns
  13975. # match most *.tfm files generated by METAFONT or afm2tfm.
  13976. 2    string        \000\021    TeX font metric data
  13977. !:mime    application/x-tex-tfm
  13978. >33    string        >\0        (%s)
  13979. 2    string        \000\022    TeX font metric data
  13980. !:mime    application/x-tex-tfm
  13981. >33    string        >\0        (%s)
  13982.  
  13983. # Texinfo and GNU Info, from Daniel Quinlan (quinlan@yggdrasil.com)
  13984. 0    search/1    \\input\ texinfo    Texinfo source text
  13985. !:mime    text/x-texinfo
  13986. 0    search/1    This\ is\ Info\ file    GNU Info text
  13987. !:mime    text/x-info
  13988.  
  13989. # TeX documents, from Daniel Quinlan (quinlan@yggdrasil.com)
  13990. 0    search/400    \\input        TeX document text
  13991. !:mime    text/x-tex
  13992. 0    search/400    \\section    LaTeX document text
  13993. !:mime    text/x-tex
  13994. 0    search/400    \\setlength    LaTeX document text
  13995. !:mime    text/x-tex
  13996. 0    search/400    \\documentstyle    LaTeX document text
  13997. !:mime    text/x-tex
  13998. 0    search/400    \\chapter    LaTeX document text
  13999. !:mime    text/x-tex
  14000. 0    search/400    \\documentclass    LaTeX 2e document text
  14001. !:mime    text/x-tex
  14002. 0    search/400    \\relax        LaTeX auxiliary file
  14003. !:mime    text/x-tex
  14004. 0    search/400    \\contentsline    LaTeX table of contents
  14005. !:mime    text/x-tex
  14006. 0    search/400    %\ -*-latex-*-    LaTeX document text
  14007. !:mime    text/x-tex
  14008.  
  14009. # Tex document, from Hendrik Scholz <hendrik@scholz.net>
  14010. 0       search/1    \\ifx        TeX document text
  14011.  
  14012. # Index and glossary files
  14013. 0    search/400    \\indexentry    LaTeX raw index file
  14014. 0    search/400    \\begin{theindex}    LaTeX sorted index
  14015. 0    search/400    \\glossaryentry    LaTeX raw glossary
  14016. 0    search/400    \\begin{theglossary}    LaTeX sorted glossary
  14017. 0    search/400    This\ is\ makeindex    Makeindex log file
  14018.  
  14019. # End of TeX
  14020.  
  14021. #------------------------------------------------------------------------------
  14022. # file(1) magic for BibTex text files
  14023. # From Hendrik Scholz <hendrik@scholz.net>
  14024.  
  14025. 0    search/1/c    @article{    BibTeX text file
  14026. 0    search/1/c    @book{        BibTeX text file
  14027. 0    search/1/c    @inbook{    BibTeX text file
  14028. 0    search/1/c    @incollection{    BibTeX text file
  14029. 0    search/1/c    @inproceedings{    BibTeX text file
  14030. 0    search/1/c    @manual{    BibTeX text file
  14031. 0    search/1/c    @misc{        BibTeX text file
  14032. 0    search/1/c    @preamble{    BibTeX text file
  14033. 0    search/1/c    @phdthesis{    BibTeX text file
  14034. 0    search/1/c    @techreport{    BibTeX text file
  14035. 0    search/1/c    @unpublished{    BibTeX text file
  14036.  
  14037. 73    search/1    %%%\ \         BibTeX-file{ BibTex text file (with full header)
  14038.  
  14039. 73    search/1    %%%\ \ @BibTeX-style-file{   BibTeX style text file (with full header)
  14040.  
  14041. 0    search/1    %\ BibTeX\ standard\ bibliography\     BibTeX standard bibliography style text file
  14042.  
  14043. 0    search/1    %\ BibTeX\ `    BibTeX custom bibliography style text file
  14044.  
  14045. 0    search/1    @c\ @mapfile{    TeX font aliases text file
  14046. #------------------------------------------------------------------------------
  14047. # file(1) magic for tgif(1) files
  14048. # From Hendrik Scholz <hendrik@scholz.net>
  14049.  
  14050. 0    string    %TGIF\ x         Tgif file version %s
  14051.  
  14052. # ------------------------------------------------------------------------
  14053. # ti-8x: file(1) magic for the TI-8x and TI-9x Graphing Calculators.
  14054. #
  14055. # From: Ryan McGuire (rmcguire@freenet.columbus.oh.us).
  14056. #
  14057. # Update: Romain Lievin (roms@lpg.ticalc.org).
  14058. #
  14059. # NOTE: This list is not complete.
  14060. # Files for the TI-80 and TI-81 are pretty rare. I'm not going to put the
  14061. # program/group magic numbers in here because I cannot find any.
  14062. 0        string        **TI80**    TI-80 Graphing Calculator File.
  14063. 0        string        **TI81**    TI-81 Graphing Calculator File.
  14064. #
  14065. # Magic Numbers for the TI-73
  14066. #
  14067. 0        string        **TI73**    TI-73 Graphing Calculator
  14068. >0x00003B    byte        0x00        (real number)
  14069. >0x00003B    byte        0x01        (list)
  14070. >0x00003B    byte        0x02        (matrix)
  14071. >0x00003B    byte        0x03        (equation)
  14072. >0x00003B    byte        0x04        (string)
  14073. >0x00003B    byte        0x05        (program)
  14074. >0x00003B    byte        0x06        (assembly program)
  14075. >0x00003B    byte        0x07        (picture)
  14076. >0x00003B    byte        0x08        (gdb)
  14077. >0x00003B    byte        0x0C        (complex number)
  14078. >0x00003B    byte        0x0F        (window settings)
  14079. >0x00003B    byte        0x10        (zoom)
  14080. >0x00003B    byte        0x11        (table setup)
  14081. >0x00003B    byte        0x13        (backup)
  14082.  
  14083. # Magic Numbers for the TI-82
  14084. #
  14085. 0        string        **TI82**    TI-82 Graphing Calculator
  14086. >0x00003B    byte        0x00        (real)
  14087. >0x00003B    byte        0x01        (list)
  14088. >0x00003B    byte        0x02        (matrix)
  14089. >0x00003B    byte        0x03        (Y-variable)
  14090. >0x00003B    byte        0x05        (program)
  14091. >0x00003B    byte        0x06        (protected prgm)
  14092. >0x00003B    byte        0x07        (picture)
  14093. >0x00003B    byte        0x08        (gdb)
  14094. >0x00003B    byte        0x0B        (window settings)
  14095. >0x00003B    byte        0x0C        (window settings)
  14096. >0x00003B    byte        0x0D        (table setup)
  14097. >0x00003B    byte        0x0E        (screenshot)
  14098. >0x00003B    byte        0x0F        (backup)
  14099. #
  14100. # Magic Numbers for the TI-83
  14101. #
  14102. 0        string        **TI83**    TI-83 Graphing Calculator
  14103. >0x00003B    byte        0x00        (real)
  14104. >0x00003B    byte        0x01        (list)
  14105. >0x00003B    byte        0x02        (matrix)
  14106. >0x00003B    byte        0x03        (Y-variable)
  14107. >0x00003B    byte        0x04        (string)
  14108. >0x00003B    byte        0x05        (program)
  14109. >0x00003B    byte        0x06        (protected prgm)
  14110. >0x00003B    byte        0x07        (picture)
  14111. >0x00003B    byte        0x08        (gdb)
  14112. >0x00003B    byte        0x0B        (window settings)
  14113. >0x00003B    byte        0x0C        (window settings)
  14114. >0x00003B    byte        0x0D        (table setup)
  14115. >0x00003B    byte        0x0E        (screenshot)
  14116. >0x00003B    byte        0x13        (backup)
  14117. #
  14118. # Magic Numbers for the TI-83+
  14119. #
  14120. 0        string        **TI83F*    TI-83+ Graphing Calculator
  14121. >0x00003B    byte        0x00        (real number)
  14122. >0x00003B    byte        0x01        (list)
  14123. >0x00003B    byte        0x02        (matrix)
  14124. >0x00003B    byte        0x03        (equation)
  14125. >0x00003B    byte        0x04        (string)
  14126. >0x00003B    byte        0x05        (program)
  14127. >0x00003B    byte        0x06        (assembly program)
  14128. >0x00003B    byte        0x07        (picture)
  14129. >0x00003B    byte        0x08        (gdb)
  14130. >0x00003B    byte        0x0C        (complex number)
  14131. >0x00003B    byte        0x0F        (window settings)
  14132. >0x00003B    byte        0x10        (zoom)
  14133. >0x00003B    byte        0x11        (table setup)
  14134. >0x00003B    byte        0x13        (backup)
  14135. >0x00003B    byte        0x15        (application variable)
  14136. >0x00003B    byte        0x17        (group of variable)
  14137.  
  14138. #
  14139. # Magic Numbers for the TI-85
  14140. #
  14141. 0        string        **TI85**    TI-85 Graphing Calculator
  14142. >0x00003B    byte        0x00        (real number)
  14143. >0x00003B    byte        0x01        (complex number)
  14144. >0x00003B    byte        0x02        (real vector)
  14145. >0x00003B    byte        0x03        (complex vector)
  14146. >0x00003B    byte        0x04        (real list)
  14147. >0x00003B    byte        0x05        (complex list)
  14148. >0x00003B    byte        0x06        (real matrix)
  14149. >0x00003B    byte        0x07        (complex matrix)
  14150. >0x00003B    byte        0x08        (real constant)
  14151. >0x00003B    byte        0x09        (complex constant)
  14152. >0x00003B    byte        0x0A        (equation)
  14153. >0x00003B    byte        0x0C        (string)
  14154. >0x00003B    byte        0x0D        (function GDB)
  14155. >0x00003B    byte        0x0E        (polar GDB)
  14156. >0x00003B    byte        0x0F        (parametric GDB)
  14157. >0x00003B    byte        0x10        (diffeq GDB)
  14158. >0x00003B    byte        0x11        (picture)
  14159. >0x00003B    byte        0x12        (program)
  14160. >0x00003B    byte        0x13        (range)
  14161. >0x00003B    byte        0x17        (window settings)
  14162. >0x00003B    byte        0x18        (window settings)
  14163. >0x00003B    byte        0x19        (window settings)
  14164. >0x00003B    byte        0x1A        (window settings)
  14165. >0x00003B    byte        0x1B        (zoom)
  14166. >0x00003B    byte        0x1D        (backup)
  14167. >0x00003B    byte        0x1E        (unknown)
  14168. >0x00003B    byte        0x2A        (equation)
  14169. >0x000032    string        ZS4        - ZShell Version 4 File.
  14170. >0x000032    string        ZS3        - ZShell Version 3 File.
  14171. #
  14172. # Magic Numbers for the TI-86
  14173. #
  14174. 0        string        **TI86**    TI-86 Graphing Calculator
  14175. >0x00003B    byte        0x00        (real number)
  14176. >0x00003B    byte        0x01        (complex number)
  14177. >0x00003B    byte        0x02        (real vector)
  14178. >0x00003B    byte        0x03        (complex vector)
  14179. >0x00003B    byte        0x04        (real list)
  14180. >0x00003B    byte        0x05        (complex list)
  14181. >0x00003B    byte        0x06        (real matrix)
  14182. >0x00003B    byte        0x07        (complex matrix)
  14183. >0x00003B    byte        0x08        (real constant)
  14184. >0x00003B    byte        0x09        (complex constant)
  14185. >0x00003B    byte        0x0A        (equation)
  14186. >0x00003B    byte        0x0C        (string)
  14187. >0x00003B    byte        0x0D        (function GDB)
  14188. >0x00003B    byte        0x0E        (polar GDB)
  14189. >0x00003B    byte        0x0F        (parametric GDB)
  14190. >0x00003B    byte        0x10        (diffeq GDB)
  14191. >0x00003B    byte        0x11        (picture)
  14192. >0x00003B    byte        0x12        (program)
  14193. >0x00003B    byte        0x13        (range)
  14194. >0x00003B    byte        0x17        (window settings)
  14195. >0x00003B    byte        0x18        (window settings)
  14196. >0x00003B    byte        0x19        (window settings)
  14197. >0x00003B    byte        0x1A        (window settings)
  14198. >0x00003B    byte        0x1B        (zoom)
  14199. >0x00003B    byte        0x1D        (backup)
  14200. >0x00003B    byte        0x1E        (unknown)
  14201. >0x00003B    byte        0x2A        (equation)
  14202. #
  14203. # Magic Numbers for the TI-89
  14204. #
  14205. 0        string        **TI89**    TI-89 Graphing Calculator
  14206. >0x000048    byte        0x00        (expression)
  14207. >0x000048    byte        0x04        (list)
  14208. >0x000048    byte        0x06        (matrix)
  14209. >0x000048    byte        0x0A        (data)
  14210. >0x000048    byte        0x0B        (text)
  14211. >0x000048    byte        0x0C        (string)
  14212. >0x000048    byte        0x0D        (graphic data base)
  14213. >0x000048    byte        0x0E        (figure)
  14214. >0x000048    byte        0x10        (picture)
  14215. >0x000048    byte        0x12        (program)
  14216. >0x000048    byte        0x13        (function)
  14217. >0x000048    byte        0x14        (macro)
  14218. >0x000048    byte        0x1C        (zipped)
  14219. >0x000048    byte        0x21        (assembler)
  14220. #
  14221. # Magic Numbers for the TI-92
  14222. #
  14223. 0        string        **TI92**    TI-92 Graphing Calculator
  14224. >0x000048    byte        0x00        (expression)
  14225. >0x000048    byte        0x04        (list)
  14226. >0x000048    byte        0x06        (matrix)
  14227. >0x000048    byte        0x0A        (data)
  14228. >0x000048    byte        0x0B        (text)
  14229. >0x000048    byte        0x0C        (string)
  14230. >0x000048    byte        0x0D        (graphic data base)
  14231. >0x000048    byte        0x0E        (figure)
  14232. >0x000048    byte        0x10        (picture)
  14233. >0x000048    byte        0x12        (program)
  14234. >0x000048    byte        0x13        (function)
  14235. >0x000048    byte        0x14        (macro)
  14236. >0x000048    byte        0x1D        (backup)
  14237. #
  14238. # Magic Numbers for the TI-92+/V200
  14239. #
  14240. 0        string        **TI92P*    TI-92+/V200 Graphing Calculator
  14241. >0x000048    byte        0x00        (expression)
  14242. >0x000048    byte        0x04        (list)
  14243. >0x000048    byte        0x06        (matrix)
  14244. >0x000048    byte        0x0A        (data)
  14245. >0x000048    byte        0x0B        (text)
  14246. >0x000048    byte        0x0C        (string)
  14247. >0x000048    byte        0x0D        (graphic data base)
  14248. >0x000048    byte        0x0E        (figure)
  14249. >0x000048    byte        0x10        (picture)
  14250. >0x000048    byte        0x12        (program)
  14251. >0x000048    byte        0x13        (function)
  14252. >0x000048    byte        0x14        (macro)
  14253. >0x000048    byte        0x1C        (zipped)
  14254. >0x000048    byte        0x21        (assembler)
  14255. #
  14256. # Magic Numbers for the TI-73/83+/89/92+/V200 FLASH upgrades
  14257. #
  14258. 0x0000016    string        Advanced    TI-XX Graphing Calculator (FLASH)
  14259. 0        string        **TIFL**    TI-XX Graphing Calculator (FLASH)
  14260. >8        byte        >0        - Revision %d
  14261. >>9         byte        x        \b.%d,
  14262. >12        byte        >0        Revision date %02x
  14263. >>13        byte        x        \b/%02x
  14264. >>14        beshort        x        \b/%04x,
  14265. >17        string        >/0        name: '%s',
  14266. >48        byte        0x74        device: TI-73,
  14267. >48        byte        0x73        device: TI-83+,
  14268. >48        byte        0x98        device: TI-89,
  14269. >48        byte        0x88        device: TI-92+,
  14270. >49        byte        0x23        type: OS upgrade,
  14271. >49        byte        0x24        type: application,
  14272. >49        byte        0x25        type: certificate,
  14273. >49        byte        0x3e        type: license,
  14274. >74        lelong        >0        size: %ld bytes
  14275.  
  14276. # VTi & TiEmu skins (TI Graphing Calculators).
  14277. # From: Romain Lievin (roms@lpg.ticalc.org).
  14278. # Magic Numbers for the VTi skins
  14279. 0               string          VTI        Virtual TI skin
  14280. >3        string        v        - Version
  14281. >>4        byte        >0        \b %c
  14282. >>6        byte        x        \b.%c
  14283. # Magic Numbers for the TiEmu skins
  14284. 0        string        TiEmu        TiEmu skin
  14285. >6              string          v               - Version
  14286. >>7             byte            >0              \b %c
  14287. >>9             byte            x               \b.%c
  14288. >>10        byte        x        \b%c
  14289.  
  14290. #------------------------------------------------------------------------------
  14291. # timezone:  file(1) magic for timezone data
  14292. #
  14293. # from Daniel Quinlan (quinlan@yggdrasil.com)
  14294. # this should work on Linux, SunOS, and maybe others
  14295. # Added new official magic number for recent versions of the Olson code
  14296. 0    string    TZif    timezone data
  14297. >4    byte    0    \b, old version
  14298. >4    byte    >0    \b, version %c
  14299. >20    belong    0    \b, no gmt time flags
  14300. >20    belong    1    \b, 1 gmt time flag
  14301. >20    belong    >1    \b, %d gmt time flags
  14302. >24    belong    0    \b, no std time flags
  14303. >20    belong    1    \b, 1 std time flag
  14304. >24    belong    >1    \b, %d std time flags
  14305. >28    belong    0    \b, no leap seconds
  14306. >28    belong    1    \b, 1 leap second
  14307. >28    belong  >1    \b, %d leap seconds
  14308. >32    belong    0    \b, no transition times
  14309. >32    belong    1    \b, 1 transition time
  14310. >32    belong  >1    \b, %d transition times
  14311. >36    belong    0    \b, no abbreviation chars
  14312. >36    belong    1    \b, 1 abbreviation char
  14313. >36    belong    >1    \b, %d abbreviation chars
  14314. 0    string    \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0    old timezone data
  14315. 0    string    \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0    old timezone data
  14316. 0    string  \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0    old timezone data
  14317. 0    string    \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0    old timezone data
  14318. 0    string    \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0    old timezone data
  14319. 0    string    \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\6\0    old timezone data
  14320. #------------------------------------------------------------------------------
  14321. # troff:  file(1) magic for *roff
  14322. #
  14323. # updated by Daniel Quinlan (quinlan@yggdrasil.com)
  14324.  
  14325. # troff input
  14326. 0    search/1    .\\"        troff or preprocessor input text
  14327. !:mime    text/troff
  14328. 0    search/1    '\\"        troff or preprocessor input text
  14329. !:mime    text/troff
  14330. 0    search/1    '.\\"        troff or preprocessor input text
  14331. !:mime    text/troff
  14332. 0    search/1    \\"        troff or preprocessor input text
  14333. !:mime    text/troff
  14334. 0    search/1    '''        troff or preprocessor input text
  14335. !:mime    text/troff
  14336. 0    regex/20    \^\\.[A-Za-z0-9][A-Za-z0-9][\ \t]    troff or preprocessor input text
  14337. !:mime    text/troff
  14338. 0    regex/20    \^\\.[A-Za-z0-9][A-Za-z0-9]$    troff or preprocessor input text
  14339. !:mime    text/troff
  14340.  
  14341. # ditroff intermediate output text
  14342. 0    search/1    x\ T        ditroff output text
  14343. >4    search/1    cat        for the C/A/T phototypesetter
  14344. >4    search/1    ps        for PostScript
  14345. >4    search/1    dvi        for DVI
  14346. >4    search/1    ascii        for ASCII
  14347. >4    search/1    lj4        for LaserJet 4
  14348. >4    search/1    latin1        for ISO 8859-1 (Latin 1)
  14349. >4    search/1    X75        for xditview at 75dpi
  14350. >>7    search/1    -12        (12pt)
  14351. >4    search/1    X100        for xditview at 100dpi
  14352. >>8    search/1    -12        (12pt)
  14353.  
  14354. # output data formats
  14355. 0    string        \100\357    very old (C/A/T) troff output data
  14356. #
  14357. #------------------------------------------------------------------------------
  14358. # tuxedo:    file(1) magic for BEA TUXEDO data files
  14359. #
  14360. # from Ian Springer <ispringer@hotmail.com>
  14361. #
  14362. 0    string        \0\0\1\236\0\0\0\0\0\0\0\0\0\0\0\0    BEA TUXEDO DES mask data
  14363.  
  14364. #------------------------------------------------------------------------------
  14365. # typeset:  file(1) magic for other typesetting
  14366. #
  14367. 0    string        Interpress/Xerox    Xerox InterPress data
  14368. >16    string        /            (version
  14369. >>17    string        >\0            %s)
  14370. #---------------------------------------------------------------------------
  14371. # Unicode:  BOM prefixed text files - Adrian Havill <havill@turbolinux.co.jp>
  14372. # GRR: These types should be recognised in file_ascmagic so these
  14373. # encodings can be treated by text patterns.
  14374. # Missing types are already dealt with internally.
  14375. #
  14376. 0    string    +/v8            Unicode text, UTF-7
  14377. 0    string    +/v9            Unicode text, UTF-7
  14378. 0    string    +/v+            Unicode text, UTF-7
  14379. 0    string    +/v/            Unicode text, UTF-7
  14380. 0    string    \335\163\146\163    Unicode text, UTF-8-EBCDIC
  14381. 0    string    \000\000\376\377    Unicode text, UTF-32, big-endian
  14382. 0    string    \377\376\000\000    Unicode text, UTF-32, little-endian
  14383. 0    string    \016\376\377        Unicode text, SCSU (Standard Compression Scheme for Unicode)
  14384.  
  14385. #------------------------------------------------------------------------------
  14386. # unknown:  file(1) magic for unknown machines
  14387. #
  14388. # XXX - this probably should be pruned, as it'll match PDP-11 and
  14389. # VAX image formats.
  14390. #
  14391. # 0x107 is 0407; 0x108 is 0410; both are PDP-11 (executable and pure,
  14392. # respectively).
  14393. #
  14394. # 0x109 is 0411; that's PDP-11 split I&D, but the PDP-11 version doesn't
  14395. # have the "version %ld", which may be a bogus COFFism (I don't think
  14396. # there ever was COFF for the PDP-11).
  14397. #
  14398. # 0x10B is 0413; that's VAX demand-paged, but this is a short, not a
  14399. # long, as it would be on a VAX.
  14400. #
  14401. # 0x10C is 0414 and 0x10E is 416; those *are* unknown.
  14402. #
  14403. 0    short        0x107        unknown machine executable
  14404. >8    short        >0        not stripped
  14405. >15    byte        >0        - version %ld
  14406. 0    short        0x108        unknown pure executable
  14407. >8    short        >0        not stripped
  14408. >15    byte        >0        - version %ld
  14409. 0    short        0x109        PDP-11 separate I&D
  14410. >8    short        >0        not stripped
  14411. >15    byte        >0        - version %ld
  14412. 0    short        0x10b        unknown pure executable
  14413. >8    short        >0        not stripped
  14414. >15    byte        >0        - version %ld
  14415. 0    long        0x10c        unknown demand paged pure executable
  14416. >16    long        >0        not stripped
  14417. 0    long        0x10e        unknown readable demand paged pure executable
  14418. #------------------------------------------------------------------------------
  14419. # uuencode:  file(1) magic for ASCII-encoded files
  14420. #
  14421.  
  14422. # GRR:  the first line of xxencoded files is identical to that in uuencoded
  14423. # files, but the first character in most subsequent lines is 'h' instead of
  14424. # 'M'.  (xxencoding uses lowercase letters in place of most of uuencode's
  14425. # punctuation and survives BITNET gateways better.)  If regular expressions
  14426. # were supported, this entry could possibly be split into two with
  14427. # "begin\040\.\*\012M" or "begin\040\.\*\012h" (where \. and \* are REs).
  14428. 0    search/1    begin\         uuencoded or xxencoded text
  14429.  
  14430. # btoa(1) is an alternative to uuencode that requires less space.
  14431. 0    search/1    xbtoa\ Begin    btoa'd text
  14432.  
  14433. # ship(1) is another, much cooler alternative to uuencode.
  14434. # Greg Roelofs, newt@uchicago.edu
  14435. 0    search/1    $\012ship    ship'd binary text
  14436.  
  14437. # bencode(8) is used to encode compressed news batches (Bnews/Cnews only?)
  14438. # Greg Roelofs, newt@uchicago.edu
  14439. 0    search/1    Decode\ the\ following\ with\ bdeco    bencoded News text
  14440.  
  14441. # BinHex is the Macintosh ASCII-encoded file format (see also "apple")
  14442. # Daniel Quinlan, quinlan@yggdrasil.com
  14443. 11    search/1    must\ be\ converted\ with\ BinHex    BinHex binary text
  14444. >41    search/1    x                    \b, version %.3s
  14445.  
  14446. # GRR: handle BASE64
  14447.  
  14448. #------------------------------------------------------------------------------
  14449. # varied.out:  file(1) magic for various USG systems
  14450. #
  14451. #    Herewith many of the object file formats used by USG systems.
  14452. #    Most have been moved to files for a particular processor,
  14453. #    and deleted if they duplicate other entries.
  14454. #
  14455. 0    short        0610        Perkin-Elmer executable
  14456. # AMD 29K
  14457. 0    beshort        0572        amd 29k coff noprebar executable
  14458. 0    beshort        01572        amd 29k coff prebar executable
  14459. 0    beshort        0160007        amd 29k coff archive
  14460. # Cray
  14461. 6    beshort        0407        unicos (cray) executable
  14462. # Ultrix 4.3
  14463. 596    string        \130\337\377\377    Ultrix core file
  14464. >600    string        >\0        from '%s'
  14465. # BeOS and MAcOS PEF executables
  14466. # From: hplus@zilker.net (Jon Watte)
  14467. 0    string        Joy!peffpwpc    header for PowerPC PEF executable
  14468. #
  14469. # ava assembler/linker Uros Platise <uros.platise@ijs.si>
  14470. 0       string          avaobj  AVR assembler object code
  14471. >7      string          >\0     version '%s'
  14472. # gnu gmon magic From: Eugen Dedu <dedu@ese-metz.fr>
  14473. 0    string        gmon        GNU prof performance data
  14474. >4    long        x        - version %ld
  14475. # From: Dave Pearson <davep@davep.org>
  14476. # Harbour <URL:http://www.harbour-project.org/> HRB files.
  14477. 0    string        \xc0HRB        Harbour HRB file
  14478. >4    short        x        version %d
  14479.  
  14480. # From: Alex Beregszaszi <alex@fsn.hu>
  14481. # 0    string        exec         BugOS executable
  14482. # 0    string        pack        BugOS archive
  14483.  
  14484. # From: Jason Spence <jspence@lightconsulting.com>
  14485. # Generated by the "examples" in STM's ST40 devkit, and derived code.
  14486. 0    lelong        0x13a9f17e    ST40 component image format
  14487. >4    string        >\0        \b, name '%s'
  14488.  
  14489. #------------------------------------------------------------------------------
  14490. # varied.script:  file(1) magic for various interpreter scripts
  14491.  
  14492. 0    string        #!\ /            a
  14493. >3    string        >\0            %s script text executable
  14494. 0    string        #!\t/            a
  14495. >3    string        >\0            %s script text executable
  14496. 0    string        #!/            a
  14497. >2    string        >\0            %s script text executable
  14498. 0    string        #!\             script text executable
  14499. >3    string        >\0            for %s
  14500.  
  14501. # From: arno <arenevier@fdn.fr>
  14502. # mozilla xpconnect typelib
  14503. # see http://www.mozilla.org/scriptable/typelib_file.html
  14504. 0    string         XPCOM\nTypeLib\r\n\032        XPConnect Typelib
  14505. >0x10  byte        x       version %d
  14506. >>0x11 byte        x      \b.%d
  14507.  
  14508. #------------------------------------------------------------------------------
  14509. # vax:  file(1) magic for VAX executable/object and APL workspace
  14510. #
  14511. 0    lelong        0101557        VAX single precision APL workspace
  14512. 0    lelong        0101556        VAX double precision APL workspace
  14513.  
  14514. #
  14515. # VAX a.out (32V, BSD)
  14516. #
  14517. 0    lelong        0407        VAX executable
  14518. >16    lelong        >0        not stripped
  14519.  
  14520. 0    lelong        0410        VAX pure executable
  14521. >16    lelong        >0        not stripped
  14522.  
  14523. 0    lelong        0413        VAX demand paged pure executable
  14524. >16    lelong        >0        not stripped
  14525.  
  14526. 0    lelong        0420        VAX demand paged (first page unmapped) pure executable
  14527. >16    lelong        >0        not stripped
  14528.  
  14529. #
  14530. # VAX COFF
  14531. #
  14532. # The `versions' should be un-commented if they work for you.
  14533. # (Was the problem just one of endianness?)
  14534. #
  14535. 0    leshort        0570        VAX COFF executable
  14536. >12    lelong        >0        not stripped
  14537. >22    leshort        >0        - version %ld
  14538. 0    leshort        0575        VAX COFF pure executable
  14539. >12    lelong        >0        not stripped
  14540. >22    leshort        >0        - version %ld
  14541.  
  14542. #------------------------------------------------------------------------------
  14543. # vicar:  file(1) magic for VICAR files.
  14544. #
  14545. # From: Ossama Othman <othman@astrosun.tn.cornell.edu
  14546. # VICAR is JPL's in-house spacecraft image processing program
  14547. # VICAR image
  14548. 0    string    LBLSIZE=    VICAR image data
  14549. >32    string    BYTE        \b, 8 bits  = VAX byte
  14550. >32    string    HALF        \b, 16 bits = VAX word     = Fortran INTEGER*2
  14551. >32    string    FULL        \b, 32 bits = VAX longword = Fortran INTEGER*4
  14552. >32    string    REAL        \b, 32 bits = VAX longword = Fortran REAL*4
  14553. >32    string    DOUB        \b, 64 bits = VAX quadword = Fortran REAL*8
  14554. >32    string    COMPLEX        \b, 64 bits = VAX quadword = Fortran COMPLEX*8
  14555. # VICAR label file
  14556. 43    string    SFDU_LABEL    VICAR label file
  14557. #------------------------------------------------------------------------------
  14558. # Virtutech Compressed Random Access File Format
  14559. #
  14560. # From <gustav@virtutech.com>
  14561. 0      string          \211\277\036\203        Virtutech CRAFF
  14562. >4     belong          x               v%d
  14563. >20    belong          0               uncompressed
  14564. >20    belong          1               bzipp2ed
  14565. >20    belong          2               gzipped
  14566. >24    belong          0               not clean
  14567.  
  14568. #------------------------------------------------------------------------------
  14569. # visx:  file(1) magic for Visx format files
  14570. #
  14571. 0    short        0x5555        VISX image file
  14572. >2    byte        0        (zero)
  14573. >2    byte        1        (unsigned char)
  14574. >2    byte        2        (short integer)
  14575. >2    byte        3        (float 32)
  14576. >2    byte        4        (float 64)
  14577. >2    byte        5        (signed char)
  14578. >2    byte        6        (bit-plane)
  14579. >2    byte        7        (classes)
  14580. >2    byte        8        (statistics)
  14581. >2    byte        10        (ascii text)
  14582. >2    byte        15        (image segments)
  14583. >2    byte        100        (image set)
  14584. >2    byte        101        (unsigned char vector)
  14585. >2    byte        102        (short integer vector)
  14586. >2    byte        103        (float 32 vector)
  14587. >2    byte        104        (float 64 vector)
  14588. >2    byte        105        (signed char vector)
  14589. >2    byte        106        (bit plane vector)
  14590. >2    byte        121        (feature vector)
  14591. >2    byte        122        (feature vector library)
  14592. >2    byte        124        (chain code)
  14593. >2    byte        126        (bit vector)
  14594. >2    byte        130        (graph)
  14595. >2    byte        131        (adjacency graph)
  14596. >2    byte        132        (adjacency graph library)
  14597. >2    string        .VISIX        (ascii text)
  14598.  
  14599. #------------------------------------------------------------------------------
  14600. # vms:  file(1) magic for VMS executables (experimental)
  14601. #
  14602. # VMS .exe formats, both VAX and AXP (Greg Roelofs, newt@uchicago.edu)
  14603.  
  14604. # GRR 950122:  I'm just guessing on these, based on inspection of the headers
  14605. # of three executables each for Alpha and VAX architectures.  The VAX files
  14606. # all had headers similar to this:
  14607. #
  14608. #   00000  b0 00 30 00 44 00 60 00  00 00 00 00 30 32 30 35  ..0.D.`.....0205
  14609. #   00010  01 01 00 00 ff ff ff ff  ff ff ff ff 00 00 00 00  ................
  14610. #
  14611. 0    string    \xb0\0\x30\0    VMS VAX executable
  14612. >44032    string    PK\003\004    \b, Info-ZIP SFX archive v5.12 w/decryption
  14613. #
  14614. # The AXP files all looked like this, except that the byte at offset 0x22
  14615. # was 06 in some of them and 07 in others:
  14616. #
  14617. #   00000  03 00 00 00 00 00 00 00  ec 02 00 00 10 01 00 00  ................
  14618. #   00010  68 00 00 00 98 00 00 00  b8 00 00 00 00 00 00 00  h...............
  14619. #   00020  00 00 07 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
  14620. #   00030  00 00 00 00 01 00 00 00  00 00 00 00 00 00 00 00  ................
  14621. #   00040  00 00 00 00 ff ff ff ff  ff ff ff ff 02 00 00 00  ................
  14622. #
  14623. 0    belong    0x03000000    VMS Alpha executable
  14624. >75264    string    PK\003\004    \b, Info-ZIP SFX archive v5.12 w/decryption
  14625.  
  14626. # -----------------------------------------------------------
  14627. # VMware specific files (deducted from version 1.1 and log file entries)
  14628. # Anthon van der Neut (anthon@mnt.org)
  14629. 0    belong    0x4d52564e    VMware nvram 
  14630.  
  14631. #------------------------------------------------------------------------------
  14632. # vorbis:  file(1) magic for Ogg/Vorbis files
  14633. #
  14634. # From Felix von Leitner <leitner@fefe.de>
  14635. # Extended by Beni Cherniavsky <cben@crosswinds.net>
  14636. # Further extended by Greg Wooledge <greg@wooledge.org>
  14637. #
  14638. # Most (everything but the number of channels and bitrate) is commented
  14639. # out with `##' as it's not interesting to the average user.  The most
  14640. # probable things advanced users would want to uncomment are probably
  14641. # the number of comments and the encoder version.
  14642. #
  14643. # FIXME: The first match has been made a search, so that it can skip
  14644. # over prepended ID3 tags. This will work for MIME type detection, but
  14645. # won't work for detecting other properties of the file (they all need
  14646. # to be made relative to the search). In any case, if the file has ID3
  14647. # tags, the ID3 information will be printed, not the Ogg information,
  14648. # so until that's fixed, this doesn't matter.
  14649. # FIXME[2]: Disable the above for now, since search assumes text mode.
  14650. #
  14651. # --- Ogg Framing ---
  14652. #0        search/1000    OggS        Ogg data
  14653. 0        string    OggS        Ogg data
  14654. !:mime        application/ogg
  14655. >4        byte        !0        UNKNOWN REVISION %u
  14656. ##>4        byte        0        revision 0
  14657. >4        byte        0
  14658. ##>>14        lelong        x        (Serial %lX)
  14659. # non-Vorbis content: FLAC (Free Lossless Audio Codec, http://flac.sourceforge.net)
  14660. >>28        string        \x7fFLAC    \b, FLAC audio
  14661. # non-Vorbis content: Theora
  14662. >>28        string        \x80theora    \b, Theora video
  14663. # non-Vorbis content: Kate
  14664. >>28        string        \x80kate\0\0\0\0    \b, Kate
  14665. >>>37        ubyte        x        v%u
  14666. >>>38        ubyte        x        \b.%u,
  14667. >>>40        byte        0        utf8 encoding,
  14668. >>>40        byte        !0        unknown character encoding,
  14669. >>>60        string        >\0        language %s,
  14670. >>>60        string        \0        no language set,
  14671. >>>76        string        >\0        category %s
  14672. >>>76        string        \0        no category set
  14673. # non-Vorbis content: Skeleton
  14674. >>28        string        fishead\0    \b, Skeleton
  14675. >>>36        short        x        v%u
  14676. >>>40        short        x        \b.%u
  14677. # non-Vorbis content: Speex
  14678. >>28        string        Speex\ \ \     \b, Speex audio
  14679. # non-Vorbis content: OGM
  14680. >>28        string        \x01video\0\0\0    \b, OGM video
  14681. >>>37        string/c    div3        (DivX 3)
  14682. >>>37        string/c    divx        (DivX 4)
  14683. >>>37        string/c    dx50        (DivX 5)
  14684. >>>37        string/c    xvid        (XviD)
  14685. # --- First vorbis packet - general header ---
  14686. >>28        string        \x01vorbis    \b, Vorbis audio,
  14687. >>>35        lelong        !0        UNKNOWN VERSION %lu,
  14688. ##>>>35        lelong        0        version 0,
  14689. >>>35        lelong        0
  14690. >>>>39        ubyte        1        mono,
  14691. >>>>39        ubyte        2        stereo,
  14692. >>>>39        ubyte        >2        %u channels,
  14693. >>>>40        lelong        x        %lu Hz
  14694. # Minimal, nominal and maximal bitrates specified when encoding
  14695. >>>>48        string        <\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff    \b,
  14696. # The above tests if at least one of these is specified:
  14697. >>>>>52        lelong        !-1
  14698. # Vorbis RC2 has a bug which puts -1000 in the min/max bitrate fields
  14699. # instead of -1.
  14700. # Vorbis 1.0 uses 0 instead of -1.
  14701. >>>>>>52    lelong        !0
  14702. >>>>>>>52    lelong        !-1000
  14703. >>>>>>>>52    lelong        x        <%lu
  14704. >>>>>48        lelong        !-1
  14705. >>>>>>48    lelong        x        ~%lu
  14706. >>>>>44        lelong        !-1
  14707. >>>>>>44    lelong        !-1000
  14708. >>>>>>>44    lelong        !0
  14709. >>>>>>>>44    lelong        x        >%lu
  14710. >>>>>48        string        <\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff    bps
  14711. # -- Second vorbis header packet - the comments
  14712. # A kludge to read the vendor string.  It's a counted string, not a
  14713. # zero-terminated one, so file(1) can't read it in a generic way.
  14714. # libVorbis is the only one existing currently, so I detect specifically
  14715. # it.  The interesting value is the cvs date (8 digits decimal).
  14716. # Post-RC1 Ogg files have the second header packet (and thus the version)
  14717. # in a different place, so we must use an indirect offset.
  14718. >>>(84.b+85)        string        \x03vorbis
  14719. >>>>(84.b+96)        string/c    Xiphophorus\ libVorbis\ I    \b, created by: Xiphophorus libVorbis I
  14720. >>>>>(84.b+120)        string        >00000000    
  14721. # Map to beta version numbers:
  14722. >>>>>>(84.b+120)    string        <20000508    (<beta1, prepublic)
  14723. >>>>>>(84.b+120)    string        20000508    (1.0 beta 1 or beta 2)
  14724. >>>>>>(84.b+120)    string        >20000508
  14725. >>>>>>>(84.b+120)    string        <20001031    (beta2-3)
  14726. >>>>>>(84.b+120)    string        20001031    (1.0 beta 3)
  14727. >>>>>>(84.b+120)    string        >20001031
  14728. >>>>>>>(84.b+120)    string        <20010225    (beta3-4)
  14729. >>>>>>(84.b+120)    string        20010225    (1.0 beta 4)
  14730. >>>>>>(84.b+120)    string        >20010225
  14731. >>>>>>>(84.b+120)    string        <20010615    (beta4-RC1)
  14732. >>>>>>(84.b+120)    string        20010615    (1.0 RC1)
  14733. >>>>>>(84.b+120)    string        20010813    (1.0 RC2)
  14734. >>>>>>(84.b+120)    string        20010816    (RC2 - Garf tuned v1)
  14735. >>>>>>(84.b+120)    string        20011014    (RC2 - Garf tuned v2)
  14736. >>>>>>(84.b+120)    string        20011217    (1.0 RC3)
  14737. >>>>>>(84.b+120)    string        20011231    (1.0 RC3)
  14738. # Some pre-1.0 CVS snapshots still had "Xiphphorus"...
  14739. >>>>>>(84.b+120)    string        >20011231    (pre-1.0 CVS)
  14740. # For the 1.0 release, Xiphophorus is replaced by Xiph.Org
  14741. >>>>(84.b+96)        string/c    Xiph.Org\ libVorbis\ I    \b, created by: Xiph.Org libVorbis I
  14742. >>>>>(84.b+117)        string        >00000000    
  14743. >>>>>>(84.b+117)    string        <20020717    (pre-1.0 CVS)
  14744. >>>>>>(84.b+117)    string        20020717    (1.0)
  14745. >>>>>>(84.b+117)    string        20030909    (1.0.1)
  14746. >>>>>>(84.b+117)    string        20040629    (1.1.0 RC1)
  14747.  
  14748. #------------------------------------------------------------------------------
  14749. # VXL: file(1) magic for VXL binary IO data files
  14750. #
  14751. # from Ian Scott <scottim@sf.net>
  14752. #
  14753. # VXL is a collection of C++ libraries for Computer Vision.
  14754. # See the vsl chapter in the VXL Book for more info
  14755. # http://www.isbe.man.ac.uk/public_vxl_doc/books/vxl/book.html
  14756. # http:/vxl.sf.net
  14757.  
  14758. 2    lelong    0x472b2c4e    VXL data file,
  14759. >0    leshort    >0        schema version no %d
  14760.  
  14761. #------------------------------------------------------------------------------
  14762. # warc:  file(1) magic for WARC files
  14763.  
  14764. 0    string    WARC/    WARC Archive
  14765. >5    string    x    version %.4s
  14766. #------------------------------------------------------------------------------
  14767. # weak:  file(1) magic for very weak magic entries, disabled by default
  14768. #
  14769. # These entries are so weak that they might interfere identification of
  14770. # other formats. Example include:
  14771. # - Only identify for 1 or 2 bytes
  14772. # - Match against very wide range of values
  14773. # - Match against generic word in some spoken languages (e.g. English)
  14774.  
  14775. # Summary: Computer Graphics Metafile
  14776. # Extension: .cgm
  14777. #0    beshort&0xffe0    0x0020        binary Computer Graphics Metafile
  14778. #0    beshort        0x3020        character Computer Graphics Metafile
  14779.  
  14780. #0    string        =!!        Bennet Yee's "face" format
  14781.  
  14782. #------------------------------------------------------------------------------
  14783. # windows:  file(1) magic for Microsoft Windows
  14784. #
  14785. # This file is mainly reserved for files where programs
  14786. # using them are run almost always on MS Windows 3.x or
  14787. # above, or files only used exclusively in Windows OS,
  14788. # where there is no better category to allocate for.
  14789. # For example, even though WinZIP almost run on Windows
  14790. # only, it is better to treat them as "archive" instead.
  14791. # For format usable in DOS, such as generic executable
  14792. # format, please specify under "msdos" file.
  14793. #
  14794.  
  14795.  
  14796. # Summary: Outlook Express DBX file
  14797. # Extension: .dbx
  14798. # Created by: Christophe Monniez
  14799. 0    string    \xCF\xAD\x12\xFE    MS Outlook Express DBX file
  14800. >4    byte    =0xC5            \b, message database
  14801. >4    byte    =0xC6            \b, folder database
  14802. >4    byte    =0xC7            \b, account information
  14803. >4    byte    =0x30            \b, offline database
  14804.  
  14805.  
  14806. # Summary: Windows crash dump
  14807. # Extension: .dmp
  14808. # Created by: Andreas Schuster (http://computer.forensikblog.de/)
  14809. # Reference (1): http://computer.forensikblog.de/en/2008/02/64bit_magic.html
  14810. # Modified by (1): Abel Cheung (Avoid match with first 4 bytes only)
  14811. 0    string        PAGE        
  14812. >4    string        DUMP        MS Windows 32bit crash dump
  14813. >>0x05c    byte            0        \b, no PAE
  14814. >>0x05c    byte            1        \b, PAE
  14815. >>0xf88    lelong        1        \b, full dump
  14816. >>0xf88    lelong        2        \b, kernel dump
  14817. >>0xf88    lelong        3        \b, small dump
  14818. >>0x068    lelong        x        \b, %ld pages
  14819. >4    string        DU64        MS Windows 64bit crash dump
  14820. >>0xf98    lelong        1        \b, full dump
  14821. >>0xf98    lelong        2        \b, kernel dump
  14822. >>0xf98    lelong        3        \b, small dump
  14823. >>0x090    lequad        x        \b, %lld pages
  14824.  
  14825.  
  14826. # Summary: Vista Event Log
  14827. # Extension: .evtx
  14828. # Created by: Andreas Schuster (http://computer.forensikblog.de/)
  14829. # Reference (1): http://computer.forensikblog.de/en/2007/05/some_magic.html
  14830. 0    string        ElfFile\0    MS Windows Vista Event Log
  14831. >0x2a    leshort        x        \b, %d chunks
  14832. >>0x10    lelong        x        \b (no. %d in use)
  14833. >0x18    lelong        >1        \b, next record no. %d
  14834. >0x18    lelong        =1        \b, empty
  14835. >0x78    lelong        &1        \b, DIRTY
  14836. >0x78    lelong        &2        \b, FULL
  14837.  
  14838.  
  14839. # Summary: Windows 3.1 group files
  14840. # Extension: .grp
  14841. # Created by: unknown
  14842. 0    string        \120\115\103\103    MS Windows 3.1 group files
  14843.  
  14844.  
  14845. # Summary: Old format help files
  14846. # Extension: .hlp
  14847. # Created by: Dirk Jagdmann <doj@cubic.org>
  14848. 0    lelong        0x00035f3f        MS Windows 3.x help file
  14849.  
  14850.  
  14851. # Summary: Hyper terminal
  14852. # Extension: .ht
  14853. # Created by: unknown
  14854. 0    string        HyperTerminal\ 
  14855. >15    string        1.0\ --\ HyperTerminal\ data\ file    MS Windows HyperTerminal profile
  14856.  
  14857.  
  14858. # Summary: Windows shortcut
  14859. # Extension: .lnk
  14860. # Created by: unknown
  14861. 0    string        \114\0\0\0\001\024\002\0\0\0\0\0\300\0\0\0\0\0\0\106    MS Windows shortcut
  14862.  
  14863.  
  14864. # Summary: Outlook Personal Folders
  14865. # Created by: unknown
  14866. 0    lelong        0x4E444221    Microsoft Outlook email folder
  14867. >10    leshort        0x0e        (<=2002)
  14868. >10    leshort        0x17        (>=2003)
  14869.  
  14870.  
  14871. # Summary: Windows help cache
  14872. # Created by: unknown
  14873. 0    string        \164\146\115\122\012\000\000\000\001\000\000\000    MS Windows help cache
  14874.  
  14875.  
  14876. # Summary: IE cache file
  14877. # Created by: Christophe Monniez
  14878. 0    string    Client\ UrlCache\ MMF     Internet Explorer cache file
  14879. >20    string    >\0            version %s
  14880.  
  14881.  
  14882. # Summary: Registry files
  14883. # Created by: unknown
  14884. # Modified by (1): Joerg Jenderek
  14885. 0    string        regf        MS Windows registry file, NT/2000 or above
  14886. 0    string        CREG        MS Windows 95/98/ME registry file
  14887. 0    string        SHCC3        MS Windows 3.1 registry file
  14888.  
  14889.  
  14890. # Summary: Windows Registry text
  14891. # Extension: .reg
  14892. # Submitted by: Abel Cheung <abelcheung@gmail.com>
  14893. 0    string        REGEDIT4\r\n\r\n    Windows Registry text (Win95 or above)
  14894. 0    string        Windows\ Registry\ Editor\ 
  14895. >&0    string        Version\ 5.00\r\n\r\n    Windows Registry text (Win2K or above)
  14896.  
  14897.  
  14898. # From: Pal Tamas <folti@balabit.hu>
  14899. # Autorun File
  14900. 0       string/c          [autorun]\r\n   Microsoft Windows Autorun file.
  14901. !:mime    application/x-setupscript. 
  14902. #------------------------------------------------------------------------------
  14903. # wireless-regdb:        file(1) magic for CRDA wireless-regdb file format
  14904. #
  14905. 0    string    RGDB    CRDA wireless regulatory database file
  14906. >4    belong    19    (Version 1)
  14907. #------------------------------------------------------------------------------
  14908. # wordprocessors:  file(1) magic fo word processors.
  14909. #
  14910. ####### PWP file format used on Smith Corona Personal Word Processors:
  14911. 2    string    \040\040\040\040\040\040\040\040\040\040\040ML4D\040'92    Smith Corona PWP
  14912. >24    byte    2    \b, single spaced
  14913. >24    byte    3    \b, 1.5 spaced
  14914. >24    byte    4    \b, double spaced
  14915. >25    byte    0x42    \b, letter
  14916. >25    byte    0x54    \b, legal
  14917. >26    byte    0x46    \b, A4
  14918.  
  14919. #WordPerfect type files Version 1.6 - PLEASE DO NOT REMOVE THIS LINE
  14920. 0    string    \377WPC\020\000\000\000\022\012\001\001\000\000\000\000    (WP) loadable file
  14921. >15    byte    0    Optimized for Intel
  14922. >15    byte    1    Optimized for Non-Intel
  14923. 1    string    WPC    (Corel/WP)
  14924. >8    short    257    WordPerfect macro
  14925. >8    short    258    WordPerfect help file
  14926. >8    short    259    WordPerfect keyboard file
  14927. >8    short    266    WordPerfect document
  14928. >8    short    267    WordPerfect dictionary
  14929. >8    short    268    WordPerfect thesaurus
  14930. >8    short    269    WordPerfect block
  14931. >8    short    270    WordPerfect rectangular block
  14932. >8    short    271    WordPerfect column block
  14933. >8    short    272    WordPerfect printer data
  14934. >8    short    275    WordPerfect printer data
  14935. >8    short    276    WordPerfect driver resource data
  14936. >8    short    279    WordPerfect hyphenation code
  14937. >8    short    280    WordPerfect hyphenation data
  14938. >8    short    281    WordPerfect macro resource data
  14939. >8    short    283    WordPerfect hyphenation lex
  14940. >8    short    285    WordPerfect wordlist
  14941. >8    short    286    WordPerfect equation resource data
  14942. >8    short    289    WordPerfect spell rules
  14943. >8    short    290    WordPerfect dictionary rules
  14944. >8    short    295    WordPerfect spell rules (Microlytics)
  14945. >8    short    299    WordPerfect settings file
  14946. >8    short    301    WordPerfect 4.2 document
  14947. >8    short    325    WordPerfect dialog file
  14948. >8    short    332    WordPerfect button bar
  14949. >8    short    513    Shell macro
  14950. >8    short    522    Shell definition
  14951. >8    short    769    Notebook macro
  14952. >8    short    770    Notebook help file
  14953. >8    short    771    Notebook keyboard file
  14954. >8    short    778    Notebook definition
  14955. >8    short    1026    Calculator help file
  14956. >8    short     1538    Calendar help file
  14957. >8    short     1546    Calendar data file
  14958. >8    short    1793    Editor macro
  14959. >8    short    1794    Editor help file
  14960. >8    short    1795    Editor keyboard file
  14961. >8    short    1817    Editor macro resource file
  14962. >8    short     2049    Macro editor macro
  14963. >8    short     2050    Macro editor help file
  14964. >8    short    2051    Macro editor keyboard file
  14965. >8    short    2305    PlanPerfect macro
  14966. >8    short    2306    PlanPerfect help file
  14967. >8    short    2307    PlanPerfect keyboard file
  14968. >8    short    2314    PlanPerfect worksheet
  14969. >8    short    2319    PlanPerfect printer definition
  14970. >8    short    2322    PlanPerfect graphic definition
  14971. >8    short    2323    PlanPerfect data
  14972. >8    short    2324    PlanPerfect temporary printer
  14973. >8    short    2329    PlanPerfect macro resource data
  14974. >8    byte    11    Mail
  14975. >8    short    2818    help file
  14976. >8    short    2821    distribution list
  14977. >8    short    2826    out box
  14978. >8    short    2827    in box
  14979. >8    short    2836    users archived mailbox
  14980. >8    short    2837    archived message database
  14981. >8    short    2838    archived attachments
  14982. >8    short    3083    Printer temporary file
  14983. >8    short    3330    Scheduler help file
  14984. >8    short    3338    Scheduler in file
  14985. >8    short    3339    Scheduler out file
  14986. >8    short    3594    GroupWise settings file
  14987. >8    short    3601    GroupWise directory services
  14988. >8    short    3627    GroupWise settings file
  14989. >8    short    4362    Terminal resource data
  14990. >8    short    4363    Terminal resource data
  14991. >8    short    4395    Terminal resource data
  14992. >8    short    4619    GUI loadable text
  14993. >8    short    4620    graphics resource data
  14994. >8    short    4621    printer settings file
  14995. >8    short    4622    port definition file
  14996. >8    short    4623    print queue parameters
  14997. >8    short    4624    compressed file
  14998. >8    short    5130    Network service msg file
  14999. >8    short    5131    Network service msg file
  15000. >8    short    5132    Async gateway login msg
  15001. >8    short    5134    GroupWise message file
  15002. >8    short    7956    GroupWise admin domain database
  15003. >8    short    7957    GroupWise admin host database
  15004. >8    short    7959    GroupWise admin remote host database
  15005. >8    short    7960    GroupWise admin ADS deferment data file
  15006. >8    short    8458    IntelliTAG (SGML) compiled DTD
  15007. >8    long    18219264    WordPerfect graphic image (1.0)
  15008. >8    long    18219520    WordPerfect graphic image (2.0)
  15009. #end of WordPerfect type files Version 1.6 - PLEASE DO NOT REMOVE THIS LINE
  15010.  
  15011. # Hangul (Korean) Word Processor File
  15012. 0    string    HWP\ Document\ File    Hangul (Korean) Word Processor File 3.0
  15013. # From: Won-Kyu Park <wkpark@kldp.org>
  15014. 512    string        R\0o\0o\0t\0    Hangul (Korean) Word Processor File 2000
  15015. !:mime    application/x-hwp
  15016.  
  15017. # CosmicBook, from Benoεt Rouits
  15018. 0       string  CSBK    Ted Neslson's CosmicBook hypertext file
  15019.  
  15020. 2       string  EYWR    AmigaWriter file
  15021.  
  15022. # chi:  file(1) magic for ChiWriter files
  15023. 0       string          \\1cw\          ChiWriter file
  15024. >5      string          >\0             version %s
  15025. 0       string          \\1cw           ChiWriter file
  15026.  
  15027. # Quark Express from http://www.garykessler.net/library/file_sigs.html
  15028. 2    string    IIXPR3            Intel Quark Express Document (English)
  15029. 2    string    IIXPRa            Intel Quark Express Document (Korean)
  15030. 2    string    MMXPR3            Motorola Quark Express Document (English)
  15031. !:mime    application/x-quark-xpress-3
  15032. 2    string    MMXPRa            Motorola Quark Express Document (Korean)
  15033.  
  15034. # adobe indesign (document, whatever...) from querkan
  15035. 0    belong    0x0606edf5        Adobe InDesign
  15036. >16    string    DOCUMENT        Document
  15037.  
  15038. #------------------------------------------------------------------------------
  15039. # ichitaro456: file(1) magic for Just System Word Processor Ichitaro
  15040. #
  15041. # Contributor kenzo-:
  15042. # Reversed-engineered JS Ichitaro magic numbers
  15043. #
  15044.  
  15045. 0    string        DOC
  15046. >43    byte        0x14    Just System Word Processor Ichitaro v4
  15047. !:mime    application/x-ichitaro4
  15048. >144    string    JDASH        application/x-ichitaro4
  15049.  
  15050. 0    string        DOC
  15051. >43    byte        0x15    Just System Word Processor Ichitaro v5
  15052. !:mime    application/x-ichitaro5
  15053.  
  15054. 0    string        DOC
  15055. >43    byte        0x16    Just System Word Processor Ichitaro v6
  15056. !:mime    application/x-ichitaro6
  15057.  
  15058. # Type: Freemind mindmap documents
  15059. # From: Jamie Thompson <debian-bugs@jamie-thompson.co.uk>
  15060. 0    string/cB    \<map\ version    Freemind document
  15061. !:mime    application/x-freemind
  15062.  
  15063. # Type:        Scribus
  15064. # From:        Werner Fink <werner@suse.de>
  15065. 0    string    \<SCRIBUSUTF8\ Version        Scribus Document
  15066. 0    string    \<SCRIBUSUTF8NEW\ Version    Scribus Document
  15067. !:mime    application/x-scribus
  15068.  
  15069. #------------------------------------------------------------------------------
  15070. # file(1) magic(5) data for xdelta  Josh MacDonald <jmacd@CS.Berkeley.EDU>
  15071. #
  15072. 0    string    %XDELTA%    XDelta binary patch file 0.14
  15073. 0    string    %XDZ000%    XDelta binary patch file 0.18
  15074. 0    string    %XDZ001%    XDelta binary patch file 0.20
  15075. 0    string    %XDZ002%    XDelta binary patch file 1.0
  15076. 0    string    %XDZ003%    XDelta binary patch file 1.0.4
  15077. 0    string    %XDZ004%    XDelta binary patch file 1.1
  15078.  
  15079. #------------------------------------------------------------------------------
  15080. # xenix:  file(1) magic for Microsoft Xenix
  15081. #
  15082. # "Middle model" stuff, and "Xenix 8086 relocatable or 80286 small
  15083. # model" lifted from "magic.xenix", with comment "derived empirically;
  15084. # treat as folklore until proven"
  15085. #
  15086. # "small model", "large model", "huge model" stuff lifted from XXX
  15087. #
  15088. # XXX - "x.out" collides with PDP-11 archives
  15089. #
  15090. 0    string        core        core file (Xenix)
  15091. 0    byte        0x80        8086 relocatable (Microsoft)
  15092. 0    leshort        0xff65        x.out
  15093. >2    string        __.SYMDEF     randomized
  15094. >0    byte        x        archive
  15095. 0    leshort        0x206        Microsoft a.out
  15096. >8    leshort        1        Middle model
  15097. >0x1e    leshort        &0x10        overlay
  15098. >0x1e    leshort        &0x2        separate
  15099. >0x1e    leshort        &0x4        pure
  15100. >0x1e    leshort        &0x800        segmented
  15101. >0x1e    leshort        &0x400        standalone
  15102. >0x1e    leshort        &0x8        fixed-stack
  15103. >0x1c    byte        &0x80        byte-swapped
  15104. >0x1c    byte        &0x40        word-swapped
  15105. >0x10    lelong        >0        not-stripped
  15106. >0x1e    leshort        ^0xc000        pre-SysV
  15107. >0x1e    leshort        &0x4000        V2.3
  15108. >0x1e    leshort        &0x8000        V3.0
  15109. >0x1c    byte        &0x4        86
  15110. >0x1c    byte        &0xb        186
  15111. >0x1c    byte        &0x9        286
  15112. >0x1c    byte        &0xa        386
  15113. >0x1f    byte        <0x040        small model
  15114. >0x1f    byte        =0x048        large model    
  15115. >0x1f    byte        =0x049        huge model 
  15116. >0x1e    leshort        &0x1        executable
  15117. >0x1e    leshort        ^0x1        object file
  15118. >0x1e    leshort        &0x40        Large Text
  15119. >0x1e    leshort        &0x20        Large Data
  15120. >0x1e    leshort        &0x120        Huge Objects Enabled
  15121. >0x10    lelong        >0        not stripped
  15122.  
  15123. 0    leshort        0x140        old Microsoft 8086 x.out
  15124. >0x3    byte        &0x4        separate
  15125. >0x3    byte        &0x2        pure
  15126. >0    byte        &0x1        executable
  15127. >0    byte        ^0x1        relocatable
  15128. >0x14    lelong        >0        not stripped
  15129.  
  15130. 0    lelong        0x206        b.out
  15131. >0x1e    leshort        &0x10        overlay
  15132. >0x1e    leshort        &0x2        separate
  15133. >0x1e    leshort        &0x4        pure
  15134. >0x1e    leshort        &0x800        segmented
  15135. >0x1e    leshort        &0x400        standalone
  15136. >0x1e    leshort        &0x1        executable
  15137. >0x1e    leshort        ^0x1        object file
  15138. >0x1e    leshort        &0x4000        V2.3
  15139. >0x1e    leshort        &0x8000        V3.0
  15140. >0x1c    byte        &0x4        86
  15141. >0x1c    byte        &0xb        186
  15142. >0x1c    byte        &0x9        286
  15143. >0x1c    byte        &0x29        286
  15144. >0x1c    byte        &0xa        386
  15145. >0x1e    leshort        &0x4        Large Text
  15146. >0x1e    leshort        &0x2        Large Data
  15147. >0x1e    leshort        &0x102        Huge Objects Enabled
  15148.  
  15149. 0    leshort        0x580        XENIX 8086 relocatable or 80286 small model
  15150.  
  15151. #------------------------------------------------------------------------------
  15152. # This is Aaron's attempt at a MAGIC file for Xilinx .bit files.
  15153. # Xilinx-Magic@RevRagnarok.com
  15154. # Got the info from FPGA-FAQ 0026
  15155. #
  15156. # First there is the sync header and its length
  15157. 0    beshort 0x0009
  15158. >2     belong    =0x0ff00ff0
  15159. >>&0    belong  =0x0ff00ff0
  15160. >>>&0    beshort =0x0000    
  15161. >>>>&0    pstring    a    Xilinx BIT data
  15162. # Next is a Pascal-style string with the NCD name. We want to capture that.
  15163. >>>>0x0F    pstring    x    - from %s
  15164. # It is followed by a NUL
  15165. >>>>>&1    byte    0x00
  15166. # And then 'b'
  15167. >>>>>&2    string b
  15168. # With the part number:
  15169. #>>>>>&5 string    4v    (Virtex4)
  15170. #>>>>>&5 string  2v    (Virtex II
  15171. #>>>>>>&0    string    !p    \b)
  15172. #>>>>>>&0    string    p    Pro)
  15173. >>>>>&4    pstring x    - for %s
  15174. # And then NUL / 'c' / Build Data / NUL / 'd' / Date / NUL / 'e' / Data Length
  15175. >>>>>>&1    byte    0x00
  15176. >>>>>>&2    string    c
  15177. >>>>>>&4    pstring    x    - built %s
  15178. >>>>>>>&1    byte    0x00
  15179. >>>>>>>&2    string    d
  15180. >>>>>>>&4    pstring    x    \b(%s)
  15181. >>>>>>>>&1    byte    0x00
  15182. >>>>>>>>&2    string    e
  15183. >>>>>>>>&4    belong    x    - data length 0x%lx
  15184.  
  15185. #------------------------------------------------------------------------------
  15186. # xo65 object files
  15187. # From: "Ullrich von Bassewitz" <uz@cc65.org>
  15188. #
  15189. 0    string        \x55\x7A\x6E\x61    xo65 object,
  15190. >4    leshort        x            version %d,
  15191. >6    leshort&0x0001 =0x0001            with debug info
  15192. >6    leshort&0x0001 =0x0000            no debug info
  15193.  
  15194. # xo65 library files
  15195. 0    string        \x6E\x61\x55\x7A    xo65 library,
  15196. >4    leshort        x            version %d
  15197.  
  15198. # o65 object files
  15199. 0    string        \x01\x00\x6F\x36\x35    o65
  15200. >6    leshort&0x1000    =0x0000            executable,
  15201. >6    leshort&0x1000    =0x1000            object,
  15202. >5    byte        x            version %d,
  15203. >6    leshort&0x8000    =0x8000            65816,
  15204. >6    leshort&0x8000    =0x0000            6502,
  15205. >6    leshort&0x2000    =0x2000            32 bit,
  15206. >6    leshort&0x2000    =0x0000            16 bit,
  15207. >6    leshort&0x4000    =0x4000            page reloc,
  15208. >6    leshort&0x4000    =0x0000            byte reloc,
  15209. >6    leshort&0x0003    =0x0000            alignment 1
  15210. >6    leshort&0x0003    =0x0001            alignment 2
  15211. >6    leshort&0x0003    =0x0002            alignment 4
  15212. >6    leshort&0x0003    =0x0003            alignment 256
  15213.  
  15214. #------------------------------------------------------------------------------
  15215. # xwindows:  file(1) magic for various X/Window system file formats.
  15216.  
  15217. # Compiled X Keymap 
  15218. # XKM (compiled X keymap) files (including version and byte ordering)
  15219. 1    string    mkx                Compiled XKB Keymap: lsb,
  15220. >0    byte    >0                version %d
  15221. >0    byte    =0                obsolete
  15222. 0    string    xkm                Compiled XKB Keymap: msb,
  15223. >3    byte    >0                version %d
  15224. >0    byte    =0                obsolete
  15225.  
  15226. # xfsdump archive
  15227. 0    string    xFSdump0            xfsdump archive
  15228. >8    belong    x    (version %d)
  15229.  
  15230. # Jaleo XFS files
  15231. 0    long    395726                Jaleo XFS file
  15232. >4    long    x                - version %ld
  15233. >8    long    x                - [%ld -
  15234. >20    long    x                %ldx
  15235. >24    long    x                %ldx
  15236. >28    long    1008                YUV422]
  15237. >28    long    1000                RGB24]
  15238.  
  15239. # Xcursor data
  15240. # X11 mouse cursor format defined in libXcursor, see
  15241. # http://www.x.org/archive/X11R6.8.1/doc/Xcursor.3.html
  15242. # http://cgit.freedesktop.org/xorg/lib/libXcursor/tree/include/X11/Xcursor/Xcursor.h
  15243. 0    string        Xcur        Xcursor data
  15244. !:mime    image/x-xcursor
  15245. >10    leshort        x        version %hd
  15246. >>8    leshort        x        \b.%hd
  15247.  
  15248. #------------------------------------------------------------------------------
  15249. # zilog:  file(1) magic for Zilog Z8000.
  15250. #
  15251. # Was it big-endian or little-endian?  My Product Specification doesn't
  15252. # say.
  15253. #
  15254. 0    long        0xe807        object file (z8000 a.out)
  15255. 0    long        0xe808        pure object file (z8000 a.out)
  15256. 0    long        0xe809        separate object file (z8000 a.out)
  15257. 0    long        0xe805        overlay object file (z8000 a.out)
  15258.  
  15259. #------------------------------------------------------------------------------
  15260. # zyxel:  file(1) magic for ZyXEL modems
  15261. #
  15262. # From <rob@pe1chl.ampr.org>
  15263. # These are the /etc/magic entries to decode datafiles as used for the
  15264. # ZyXEL U-1496E DATA/FAX/VOICE modems.  (This header conforms to a
  15265. # ZyXEL-defined standard)
  15266.  
  15267. 0    string        ZyXEL\002    ZyXEL voice data
  15268. >10    byte        0        - CELP encoding
  15269. >10    byte&0x0B    1        - ADPCM2 encoding
  15270. >10    byte&0x0B    2        - ADPCM3 encoding
  15271. >10    byte&0x0B    3        - ADPCM4 encoding
  15272. >10    byte&0x0B    8        - New ADPCM3 encoding
  15273. >10    byte&0x04    4        with resync
  15274.